ASP.net 代码看不到浏览器设置的 cookie



我在 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];

我的代码设置的身份验证 cookie 不再存在!即使 Chrome 已针对该请求发送了 cookie!只有 ASP.NET 会话 cookie 在Context.Request中可见。

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

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

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

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

但我没有看过事件日志。

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

最新更新