【问题标题】:ASP.net code does not see cookie set by browserASP.net 代码看不到浏览器设置的 cookie
【发布时间】:2014-05-12 11:34:29
【问题描述】:

我在 ASP.NET 3.5 应用程序中使用表单身份验证。当我登录时,我可以在 Chrome 中看到已设置身份验证 cookie 并正在发送回 ASP.NET 开发服务器。

但是,当它到达Global.asax 中的此代码时:

void Application_AuthenticateRequest(object sender, EventArgs e)
{
    string cookieName = FormsAuthentication.FormsCookieName;
    HttpCookie authCookie = Context.Request.Cookies[cookieName];

我的代码设置的 auth cookie 不再存在!即使 Chrome 已经为该请求发送了 cookie!只有 ASP.NET 会话 cookie 在 Context.Request 中可见。

我尝试更改身份验证 cookie 的名称,但没有帮助。

顺便说一句,即使我已更改 web.config 以指定表单身份验证,它也要求浏览器执行 NTLM 身份验证。

【问题讨论】:

标签: asp.net cookies forms-authentication asp.net-3.5


【解决方案1】:

问题是我在事件日志中收到以下错误:

 Forms authentication failed for the request. Reason: The ticket supplied was invalid. 

但我没有查看事件日志。

显然,将 cookie 值设置为加密票证是 ASP.NET 的要求,如this code sample 所示。尽管某些文档暗示了什么,但您不能只在表单身份验证 cookie 中放入任何您想要的内容。

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 2014-05-07
    • 2020-06-06
    • 1970-01-01
    • 2018-10-26
    • 2017-12-17
    • 2013-08-07
    • 1970-01-01
    相关资源
    最近更新 更多