gpt4 book ai didi

ASP.NET Cookieless Forms Auth 未在登录页面添加书签时设置 cookie

转载 作者:行者123 更新时间:2023-12-01 05:41:09 25 4
gpt4 key购买 nike

我们的 ASP.NET 4.0 应用程序的表单例份验证设置为 cookieless="AutoDetect"。我注意到如果用户为我们的登录页面添加了书签,书签链接将设置为 https://hostname.com/Login.aspx?AspxAutoDetectCookieSupport=1 .如果用户直接从新的浏览器 session 导航到此并执行有效登录,则不会设置 cookie。如果我直接导​​航到该页面,但从查询字符串中删除 AspxAutoDetectCookieSupport,则正确创建了 cookie。

如果用户直接导航到 Default.aspx 或根目录,登录功能正常,即使 AspxAutoDetectCookieSupport=1 附加到查询字符串。

当用户单击登录按钮时,我们会回发到登录页面并根据我们的数据库手动检查用户凭据。如果成功,我们会:

FormsAuthentication.RedirectFromLoginPage(userName, false);

我花了很多时间对此进行调试,包括查看引用源中的 ASP.NET 表单例份验证代码,但一直无法确定是什么导致了这种情况。我们目前唯一的解决方案是告诉用户从他们的书签 URL 中删除登录页面,并在我们的登录页面上添加一个书签按钮供用户点击。

是否有其他解决方案可以解决此表单例份验证问题?它是表单例份验证吗?

最佳答案

这里的问题是您总是使用 RedirectFromLoginPage,无论是否提供了重定向位置。如果未提供,则重定向将失败。对此的正确解决方案是检查重定向 url 并重定向到 default.aspx 如果它不可用(从 this blog article 借用的源示例):

// Once the user's entered credentials are verified //
if(Request.Params["ReturnUrl"] != null)
{
FormsAuthentication.RedirectFromLoginPage(txtUserName.text, false);
}
else
{
FormsAuthentication.SetAuthcookie(txtUserName.text, false);
Response.Redirect("Default.aspx");
}

关于ASP.NET Cookieless Forms Auth 未在登录页面添加书签时设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5378184/

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