【问题标题】:Why is Request.Cookies[".ASPXAUTH"] missing when using Chrome or IE9?为什么使用 Chrome 或 IE9 时缺少 Request.Cookies[".ASPXAUTH"]?
【发布时间】:2013-03-07 01:31:08
【问题描述】:

我有以下代码:

var httpCookie = context.HttpContext.Request.Cookies[".ASPXAUTH"];

这适用于 Firefox。 [".ASPXAUTH"] 已列出并找到。但是在 Chrome 和 IE9 中它丢失了,因此 httpCookie 为空。

这是为什么,请问我该如何解决?

非常感谢。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


    【解决方案1】:

    要获取应用程序身份验证的 cookie,您可以尝试以下操作:

    HttpCookie appCookie = context.HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
    

    要解密它,你可以使用:

    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(appCookie.Value);
    
    // you can access all properties using the 'ticket' object. 
    string cookikePath = ticket.CookiePath;
    DateTime expiration = ticket.Expiration;
    bool expired = ticket.Expired;
    bool isPersistent = ticket.IsPersistent;
    DateTime issueDate = ticket.IssueDate;
    string name = ticket.Name;
    string userData = ticket.UserData;
    string version = ticket.Version;
    

    【讨论】:

    • 嗨,谢谢你,我已经发布了完整的代码。我正在使用它将 Word 文档下载到浏览器。
    • 尝试调整您的代码以使用context.HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];获取cookie。
    • Felipe,我已经整理好了。有点基本的错误。使用 Chrome 或 IE 时,我没有登录我的应用程序。我通常使用FF,所以cookie就在那里。谢谢,非常感谢您的帮助。我已经勾选了你的答案,因为我相信这会对其他人有所帮助。
    • 也许将来它可以帮助某人:)
    猜你喜欢
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2011-01-08
    • 2014-06-12
    相关资源
    最近更新 更多