为什么默认的ASP.NET窗体身份验证Cookie在默认名称=>“.ASPXAUTH”中有一个前导点?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (48)

默认的ASP.NET Forms Authentication cookie将其名称设置为“ .ASPXAUTH。注意第一个字符是一个时期?这是否有特别的原因?像,这是否会影响目标域的域名或子域名。

或者,它纯粹是MS开发人员提出的一些随机事件(也许是为了帮助排序cookie,当他们正在调试或什么时候......因为文本的周期已经在其他字符串之前被列出)?

提问于
用户回答回答于

我无法找到sajoshi提到的“两点”要求,但是我确实在HTTP规范rfc2109上找到了这个要求。

Domain = domain可选。域属性指定cookie有效的域。明确指定的域必须始终以点开头。

http://www.w3.org/Protocols/rfc2109/rfc2109

该部分是4.2.2 Set-Cookie语法。在sajoshi的职位之前我根本不知道有点要求,所以我查了一下,但似乎他是对的。如果有人仔细阅读,可以指出我错过的任何内容,请做。

我在第4.3.3节中确实发现

请求主机是FQDN(非IP地址),格式为HD,其中D是Domain属性的值,H是包含一个或多个点的字符串。

(FQDN是完全合格的域名)

请求主机yxfoo.com中Domain = .foo.com的Set-Cookie将被拒绝,因为H是yx并包含一个点

和,

请求主机x.foo.com中Domain = .foo.com的Set-Cookie将被接受。

因此,如果Cookie域的名称基于域名,似乎Cookie域至少需要两个点。但是,aspnet认证cookie没有这样做,所以这就是为什么它只需要一个点。

用户回答回答于

同样的cookie是完全可选的,并且简单地降低了覆盖可能由代码设置的不同cookie的可能性。双点要求仅与域名有关。

扫码关注云+社区