什么是 ASPXAUTH cookie?
在使用 ASP.Net 表单身份验证时,我遇到了 .ASPXAUTH cookie。 我有几个问题:
- 这个 cookie 的用途是什么?
- 这个 cookie 的位置在哪里?
While working with ASP.Net Forms Authentication I came across the .ASPXAUTH cookie. I have a couple questions:
- What is the purpose of this cookie?
- What is the location of this cookie?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ASPXAUTH cookie 用于确定用户是否经过身份验证。
至于 cookie 的位置,这取决于您的浏览器。 如果您使用的是 Firefox,您可以通过单击“工具”->“浏览器”来查看 cookie。 选项-> 隐私。 然后向下滚动到域并将其展开以查看 cookie 及其值。 该值使用机器密钥(位于服务器的 machine.config 或 web.config 文件中)进行加密,因此查看客户端上的 cookie 不会真正为您提供任何信息。 您可以使用以下方式解密/查看服务器端的值:
其中
authTicket
具有以下字段:“ASPXAUTH 基本上用于维护 ASP.NET 会话状态”这一说法是不正确的。 ASP.NET 发出一个完全不同的 cookie(名为 ASP.NET_SessionId)来跟踪会话状态。
The ASPXAUTH cookie is used to determine if a user is authenticated.
As far as the location of the cookie, that depends on your browser. If you are using Firefox you can view the cookie by clicking on Tools -> Options -> Privacy. Then scroll down to the domain and expand it to see the cookie and its value. The value is encrypted using the machine key (located in the server's machine.config or web.config file) so looking at the cookie on the client won't really provide you any information. You can decrypt/view the value on the server side using:
where
authTicket
has these fields:The statement "ASPXAUTH is basically used to maintain ASP.NET Session State" is incorrect. ASP.NET issues an entirely different cookie, named ASP.NET_SessionId, to track session state.
实际上,.ASPXAUTH cookie 并不能准确地告诉您用户何时真正经过身份验证。 当用户注销应用程序时,.ASPXAUTH cookie 将从浏览器中删除。 但是,如果您在短时间内返回该站点(表单身份验证 cookie 超时),并使用以下内容编辑新的 ASP.NET_SessionId cookie:
刷新后,您将能够假定经过身份验证的用户的身份,而无需在技术上再次重新进行身份验证。 (再次假设您在 .ASPXAUTH 加密身份验证字符串中存储的指定超时内执行此操作)
一个好的 博客 文章更详细地解释了该问题。 一个可能的解决方案是将 .ASPXAUTH 与 ASP 会话结合起来。
Actually the .ASPXAUTH cookie does not accurately tell you when the user is truly authenticated. When the user logs out of the app, the .ASPXAUTH cookie is removed from the browser. However, if you go back to the site within a short period of time (with timeout of form auth cookie), and edit the new ASP.NET_SessionId cookie's with the following:
After refresh you will be able to assume the identity of the authenticated user without technically re-authenticating again. (again assuming you do this within the specificied timeout stored within the .ASPXAUTH encrypted auth string)
A good blog post explains the problem in more detail. A possible solution is to couple the .ASPXAUTH with the ASP session.
在 Chrome 浏览器上
1.开发者工具-F12
2.找到应用程序选项卡
3.将左侧窗格指向cookie
您会发现登录应用程序上的可用会话是否有 ASPXAUTH cookie
on Chrome Browser
1.developer tools -F12
2.locate Application tab
3.point the left pane for cookies
you will find it out if ASPXAUTH cookie for the available session on logged in applicaion