ASP.NET FormsAuthentication 不会重定向到根目录中的 Default.aspx
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="?" />
更改为 <allow users="?" />
,我可以直接加载 Default.aspx,但重定向仍然不起作用。
我在这里完全不知所措。我以前从未见过这种行为,而且我没有想法去尝试。为什么它不允许我重定向到应用程序根目录中的页面?非常感谢任何帮助。
原来是 IIS Express 问题。
我在我的本地 IIS 上试过 运行 它并且工作正常。我重新安装了 IIS Express,它现在似乎也能正常工作了。
我的表单身份验证设置如下:
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="?" />
更改为 <allow users="?" />
,我可以直接加载 Default.aspx,但重定向仍然不起作用。
我在这里完全不知所措。我以前从未见过这种行为,而且我没有想法去尝试。为什么它不允许我重定向到应用程序根目录中的页面?非常感谢任何帮助。
原来是 IIS Express 问题。 我在我的本地 IIS 上试过 运行 它并且工作正常。我重新安装了 IIS Express,它现在似乎也能正常工作了。