![](/img/trans.png)
[英]ASP.NET if root URL contains query string, pass it to default.aspx on redirect
[英]ASP.NET FormsAuthentication won't redirect to Default.aspx in root
我有如下形式的身份验证设置:
Web.config文件:
<authentication mode="Forms">
<forms slidingExpiration="true" cookieless="UseCookies" timeout="180" loginUrl="Login.aspx" defaultUrl="Default.aspx" name=".ASPXVEWPAUTH"/>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Login.aspx:
/**Auth logic in button click**/
FormsAuthentication.RedirectFromLoginPage(username, false);
Login.aspx和Default.aspx页面都位于应用程序的根目录中。
每次登录时,它都会将我重定向回登录页面。 如果我直接进入Default.aspx,它将按照需要将我重定向到登录页面,将Default.aspx放入应有的returnUrl查询字符串中,然后在我登录时将其重定向到没有查询字符串的Login.aspx 。 如果尝试不使用查询字符串再次登录,它仍然会返回到Login.aspx。
如果我将defaultUrl更改为根目录之外的页面,它将重定向很好,没有问题。
如果我更改FormsAuthentication.RedirectFromLoginPage(username, false);
只是Response.Redirect("Default.aspx");
,重定向仍然无效。
如果我更改<deny users="?" />
<deny users="?" />
到<allow users="?" />
<allow users="?" />
,我可以直接直接加载Default.aspx,但是重定向仍然不起作用。
我在这里完全不知所措。 我以前从未见过这种行为,并且没有尝试的想法。 为什么不让我重定向到应用程序根目录内的页面? 任何帮助是极大的赞赏。
原来这是一个IIS Express问题。 我尝试在本地IIS上运行它,但效果很好。 我重新安装了IIS express,现在看来也可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.