首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么默认的ASP.NET窗体身份验证Cookie的默认名称=> ".ASPXAUTH“中有一个前导句点

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

Stack Overflow用户
提问于 2011-03-21 12:57:58
回答 3查看 3.5K关注 0票数 16

默认ASP.NET Forms Authentication cookie sets it's name as ""。注意第一个字符是句点吗?这有什么特别的原因吗?例如,这是否会对目标域的域名或子域产生影响。

或者这纯粹是MS开发人员想出的一些随机的东西(可能是为了帮助排序cookie,当他们在调试或其他什么的时候)。因为带句点的文本通常列在其他字符串之前)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-22 08:14:46

我找不到sajoshi提到的“两点”要求,但我在HTTP规范rfc2109上找到了这一点。

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

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

本节是4.2.2 Set-Cookie语法。在sajoshi的帖子之前,我根本不知道有一个点的要求,所以我查了一下,但看起来他是对了一半。如果有人仔细阅读它,并能指出我遗漏的任何东西,请这样做。

更新

I in 在4.3.3节中发现

请求主机是一个完全限定的域名(不是IP地址),其格式为HD,其中D是域属性的值,H是包含一个或多个点的字符串。

(FQDN是完全限定的域名)

将拒绝来自请求主机y.x.foo.com的Domain=.foo.com的Set-Cookie,因为H是y.x且包含一个点

和,

将接受来自用于Domain=.foo.com的请求主机x.foo.com的

集Cookie。

因此,看起来Cookie域名至少需要两个点,如果它是基于域名命名的。但是,aspnet身份验证cookie不能做到这一点,这就是它只需要一个点的原因。

票数 -1
EN

Stack Overflow用户

发布于 2011-11-05 01:30:14

中的cookie是完全可选的,它可以减少覆盖代码设置的不同cookie的可能性。两个点的要求只与域名相关。

票数 11
EN

Stack Overflow用户

发布于 2011-03-21 16:30:34

前导点字符是必需的。这是必要的,因为HTTP规范要求Cookie域属性必须至少包含两个点

如果在开发期间想要在http://site1.localhost/http://site2.localhost/之间共享cookies,这会导致不便。要解决此问题,您可以在主机文件中将site1.localhost.dev和site2.localhost.dev映射到127.0.0.1,然后将域设置为.localhost.dev

希望这能帮到你。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5373980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档