gpt4 book ai didi

c# - FormsAuthentication authCookie 仅对某些用户为 null

转载 作者:太空狗 更新时间:2023-10-29 23:42:34 24 4
gpt4 key购买 nike

我在使用 asp.net 表单例份验证时遇到了一个奇怪的问题。这个问题只发生在 30 多个成功登录的用户中的 3 个用户。我使用的是非常基本的身份验证代码,我已经使用了很多次,但从未见过这个问题。用户成功验证并创建 auth cookie 后,添加 cookie,并调用 response.redirect 到 FormsAuthentication.GetRedirect(userid, false)。 Global.asax 中的 Application_AuthenticateRequest 方法被命中。

// Extract the forms authentication cookie
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Context.Request.Cookies[cookieName];

if (null == authCookie)
{
// There is no authentication cookie.
return;
}

因此,在保存“好”cookie 并发生重定向后,cookie 立即为空。我已经通过调试器运行了代码,并且这 3 个用户的 cookie 仅为空。但是这个 cookie 看起来和很多登录成功的用户的 cookie 一样。

有什么想法吗?这是应该可以正常工作的标准代码。

最佳答案

您确定“好”cookie 已保存并退出响应吗?在 FormsAuthentication 中可以将一个好的 cookie 添加到 header ,但响应在退出时被其他一些系统错误(例如 w3wp.exe 崩溃)杀死,因此会生成一个没有 cookie 的新响应并发生重定向无论如何。

根据我自己遇到过类似问题的经验,我有一个自定义的 Principal 类在身份验证(和 cookie 创建)后崩溃,我没有编写适当的 cookie,而是从响应中完全删除了 cookie。

关于c# - FormsAuthentication authCookie 仅对某些用户为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2061626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com