代码之家  ›  专栏  ›  技术社区  ›  balaweblog

什么是ASPXAUTH cookie?

  •  68
  • balaweblog  · 技术社区  · 16 年前

    • 这个饼干的用途是什么?
    • 这个饼干的位置是什么?
    3 回复  |  直到 13 年前
        1
  •  87
  •   wal    10 年前

    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 有以下字段:

    enter image description here

    语句“ASPXAUTH基本上用于维护ASP.NET会话状态”不正确。ASP.NET发布一个完全不同的cookie,名为ASP.NET_SessionId,用于跟踪会话状态。

        2
  •  12
  •   Community CDub    7 年前

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

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

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

    好的 blog