ASP.NET窗体身份验证默认重定向[工作]并重定向到请求的页面w / QueryString [不工作]

时间:2009-11-11 23:10:21

标签: c# .net asp.net forms-authentication

我有一个网站,基本的表单身份验证工作正常。用户的电子邮件包含指向我网站的链接,并带有查询字符串变量。提示用户正确登录,但使用

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

不幸的是,这是设计的,但这是一篇关于这个问题的伟大文章,描述了它,还有一个解决方法:

http://blogs.msdn.com/vijaysk/archive/2008/01/24/anatomy-of-forms-authentication-return-url.aspx

修改 我很抱歉,我认为第一次阅读它时,该博客中有一个解决方法。尝试Response.RedirectFormsAuthentication.GetRedirectURL()并添加正确的查询字符串。