我们将ASP.NET 4.0应用程序的表单验证设置为cookieless =“AutoDetect”。我注意到,如果用户为我们的登录页面添加书签,书签链接将设置为https://hostname.com/Login.aspx?AspxAutoDetectCookieSupport=1。如果用户直接从新的浏览器会话导航至此并执行有效的登录,则不会设置Cookie。如果我直接导航到该页面,请从查询字符串中删除AspxAutoDetectCookieSupport,则cookie会正确创建。ASP.NET Cookieless Forms验证登录页面为书签时未设置Cookie
如果用户直接导航到Default.aspx或根目录,即使使用AspxAutoDetectCookieSupport = 1添加到查询字符串,也可以正确登录。
当用户点击登录按钮时,我们会回传登录页面,并根据我们的数据库手动检查用户凭证。如果成功的话,我们这样做:
FormsAuthentication.RedirectFromLoginPage(userName, false);
我花了很多时间调试这一点,包括看着参考源的ASP.NET窗体身份验证码,并一直无法确定是什么原因造成这一点。目前我们唯一的解决方案是告诉用户从他们的书签URL中删除登录页面,并在我们的登录页面添加书签按钮以供用户点击。
是否有其他解决方案来解决此表单身份验证问题?它是一个但在表单身份验证?
对不起,您的答案反应迟缓。我似乎得到的问题是否ReturnUrl在QueryString中。我其实在IIS 7.5上运行的本地机器上试过你的代码,并且它以某种方式工作。我将相同的DLL复制到我们的测试服务器,并继续执行相同的问题。这似乎是表单身份验证中的一种侥幸。 – 2011-03-24 15:16:28