我有一个网站,基本的表单身份验证工作正常。用户的电子邮件包含指向我网站的链接,并带有查询字符串变量。提示用户正确登录,但使用
FormsAuthentication.RedirectFromLoginPage(userName, false);
当原始网址包含查询字符串时不起作用。
我已经尝试过这些请求,但没有记录:
http://localhost/default.aspx -- redirect to login, then back to default OK
This is the loaded URL before login:
http://localhost/login.aspx
http://localhost/TaskDetail.aspx -- redirect to login, then back to default FAIL
This is the loaded URL before login:
http://localhost/login.aspx?ReturnUrl=%2ftaskdetail.aspx
http://localhost/TaskDetail.aspx?id=5 -- redirect to login, then back to default FAIL
This is the loaded URL before login:
http://localhost/login.aspx?ReturnUrl=%2fTaskDetail.aspx%3fTaskID%3d2464&TaskID=2464
非常感谢任何帮助。
答案 0 :(得分:1)
不幸的是,这是设计的,但这是一篇关于这个问题的伟大文章,描述了它,还有一个解决方法:
http://blogs.msdn.com/vijaysk/archive/2008/01/24/anatomy-of-forms-authentication-return-url.aspx
修改强>
我很抱歉,我认为第一次阅读它时,该博客中有一个解决方法。尝试Response.Redirect
到FormsAuthentication.GetRedirectURL()
并添加正确的查询字符串。