什么是ASPXAUTH Cookie?


80

在使用ASP.Net Forms身份验证时,我遇到了.ASPXAUTH cookie。我有几个问题:

  • 此Cookie的目的是什么?
  • 该Cookie的位置在哪里?

Answers:


84

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,以跟踪会话状态。


2
在Firefox v8.0上,可以如下找到cookie:工具->页面信息->安全->查看cookie
Anthony

在同一安全性选项卡中,有一个“查看已保存的密码”按钮,令我惊讶的是,我能够看到所有使用firefox浏览的网站的纯文本形式的密码。尽管浏览器必须将其以编码格式存储在磁盘上,并且通过解码将其显示给您参考,但正如我认为的那样,此选项实际上是一种安全威胁。如果任何黑客都可以使用相同的算法并使用javascript读取这些cookie,尽管该算法的泄漏很可能是遥远的,因为它可能还包含一些仅浏览器代码已知的密钥。
RBT

要获取用于在http请求的cookie集合中存储asp.net会话ID的密钥名称,请使用C#代码:var aspNetSessionState = new System.Web.Configuration.SessionStateSection(); var aspNetSessionCookieName = aspNetSessionState.CookieName;
RBT

Application_PostAuthenticateRequestRequest.IsAuthenticated是事实,但.ASPXAUTH我HttpContext.Current.Request.Cookies没有价值。我使用sessionState。
Kiquenet '16

1
我创建了一个MVC项目,运行它。注册帐户,然后登录。并在chrome dev工具中检查cookie,其中有一个Aspnet.ApplicationCookie。然后在登录操作中添加一行:FormsAuthentication.SetAuthCookie(model.Email,true); 再次登录并检查了chrome dev工具中的cookie,这次显然是ASPXAuth。那么两者的区别是什么?

10

实际上,.ASPXAUTH cookie不能准确告知您何时对用户进行了真实身份验证。当用户退出应用程序时,将从浏览器中删除.ASPXAUTH cookie。但是,如果您在短时间内返回该网站(表单验证cookie超时),并使用以下内容编辑新的ASP.NET_SessionId cookie:

  • 将“名称”字段从“ ASP.NET_SessionId”更改为“ .ASPXAUTH”
  • 将“值”从24个字符的sessionID更改为旧的448个字符的身份验证字符串

刷新后,您将能够假定已验证用户的身份,而无需再次进行技术上的重新验证。(再次假设您在.ASPXAUTH加密的身份验证字符串中存储的指定超时内执行此操作)

一篇不错的博客文章会更详细地说明问题。一种可能的解决方案是将.ASPXAUTH与ASP会话耦合。


0

如果用户与HTML登录URL的交互已允许TSWPPserver建立用户身份,则远程服务器应生成一个cookie来标识该用户并允许对该服务器进行身份验证。cookie的内容应该被签名和加密。此cookie的特定实现(包括签名和加密算法)取决于TSWPP服务器的实现,因为仅服务器需要解析cookie的内容。如果服务器实现了cookie,则该cookie必须在HTTP负载中以Content-Type为“ application / x-msts-webfeed-login”的形式返回。

http://msdn.microsoft.com/en-us/library/ee920427.aspx

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.