当前位置:  开发笔记 > 后端 > 正文

什么是ASPXAUTH cookie?

如何解决《什么是ASPXAUTHcookie?》经验,为你挑选了2个好方法。

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

这个cookie的目的是什么?

这个cookie的位置是什么?

Todd.. 79

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,用于跟踪会话状态.



1> Todd..:

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,用于跟踪会话状态.


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

2> 小智..:

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

将"name"字段从"ASP.NET_SessionId"更改为".ASPXAUTH"

将"char"从24 char sessionID更改为旧的448 char身份验证字符串

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

一篇好的博客文章更详细地解释了这个问题.一种可能的解决方案是将.ASPXAUTH与ASP会话结合起来.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有