在IIS中关闭默认文档功能,情况就是这样......
我项目的开始页面是A.aspx。我运行该项目,果然,A.aspx出现在浏览器的url中。尽管如此,A.aspx发现没有用户登录并重定向到Login.aspx,就像它应该的那样。
A.aspx:
if (Session["UserStuff"] == null)
Response.Redirect("~/Account/Login.aspx");
当用户登录时,login.aspx显示为BUT,代码为:
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text,true);
始终重定向到“Default.aspx”而不是“A.aspx”
我已经检查过FormsAuthentication.GetRedirectUrl并且确定它返回“Default.aspx”
我很难过????
答案 0 :(得分:6)
在web.config
中,您可以set the default page使用defaultUrl
属性:
<authentication mode="Forms">
<forms
loginUrl="login.aspx"
defaultUrl="a.aspx"
protection="All"
timeout="30"
/>
</authentication>
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您正在使用FormsAuthentication,则应在web.config中定义您的设置。听起来你在DefaultUrl的web.config中有一个默认设置。您不应该需要会话重定向。 FormsAuthentication应该为您执行此操作。如果您没有找到会话并强制使用SignOut(),则不会有任何损害,但FormsAuthentication应执行此重定向。
答案 3 :(得分:0)
根据我的理解,当用户被重定向到您的登录屏幕时,表单身份验证机制会将用户最初访问的页面的URL添加到他们用户尝试访问的登录URL。例如,如果您有一个登录页面:http; // bob / login.aspx,并且用户试图访问http; // bob / showmethemoney.aspx,那么它们将被重定向到http; // bob / login。 ASPX?RETURNURL = showmethemoney.aspx。因此,如果您在用户登录后使用ReturnUrl重定向用户,则用户将始终返回到他们最初尝试访问的资源。