什么是ASPXAUTH cookie?
使用ASP.Net Forms身份验证时,我遇到了.ASPXAUTH cookie。我有几个问题:什么是ASPXAUTH cookie?
- 这个cookie的目的是什么?
- 这个cookie的位置是什么?
ASPXAUTH cookie用于确定用户是否已通过身份验证。
至于cookie的位置,这取决于您的浏览器。如果您使用Firefox,您可以通过单击工具 - >选项 - >隐私来查看cookie。然后向下滚动到该域并将其展开以查看Cookie及其值。该值使用计算机密钥(位于服务器的machine.config或web.config文件中)进行加密,因此在客户端查看cookie不会真正为您提供任何信息。您可以解密/使用查看服务器端的值:
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
其中authTicket
有以下字段:
声明“ASPXAUTH基本上是用来维持ASP.NET会话状态”是不正确的。 ASP.NET发布完全不同的cookie,名为ASP.NET_SessionId,用于跟踪会话状态。
实际上,.ASPXAUTH cookie不能准确地告诉您用户何时进行真正的身份验证。当用户注销应用程序时,将从浏览器中删除.ASPXAUTH cookie。但是,如果你回到现场的时候(与形式的权威性的cookie超时)在短期内,并用以下编辑新ASP.NET_SessionId cookie的:从“ASP
- 改变“名称”字段.NET_SessionId“到” .ASPXAUTH”
- 变化‘值’,从24字符的sessionID老448字符验证字符串
刷新后,您将能够承担的认证用户的身份,而无需在技术上重新认证再次。 (再次假设您在存储在.ASPXAUTH加密认证字符串中的指定超时内执行此操作)
一个不错的blog后更详细地解释了问题。可能的解决方案是将.ASPXAUTH与ASP会话耦合。
如果用户与HTML登录URL的交互允许TSWPPserver建立用户身份,远程服务器应该生成一个cookie来标识用户并允许对服务器进行身份验证。 cookie的内容应该被签名和加密。包括签名和加密算法的这个cookie的具体实现取决于TSWPP服务器的实现,因为只需要服务器来解析cookie的内容。如果服务器实现了cookie,那么cookie必须以“application/x-msts-webfeed-login”的内容类型在HTTP有效载荷中返回。
在Firefox v8上。0可以找到cookie如下:工具 - >页面信息 - >安全 - >查看Cookies – Anthony 2011-11-25 09:51:43