[英]asp.net forms authentication redirect problem
在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”
我难倒了????
在web.config
您可以使用defaultUrl
属性设置默认页面 :
<authentication mode="Forms">
<forms
loginUrl="login.aspx"
defaultUrl="a.aspx"
protection="All"
timeout="30"
/>
</authentication>
如果您正在使用FormsAuthentication,则应在web.config中定义您的设置。 听起来你在DefaultUrl的web.config中有一个默认设置。 您不应该需要会话重定向。 FormsAuthentication应该为您执行此操作。 如果您没有找到会话并强制使用SignOut(),则不会有任何损害,但FormsAuthentication应执行此重定向。
根据我的理解,当用户被重定向到您的登录屏幕时,表单身份验证机制会将用户最初访问的页面的URL添加到他们用户尝试访问的登录URL。 例如,如果您有一个登录页面:http; // bob / login.aspx,并且用户试图访问http; // bob / showmethemoney.aspx,那么它们将被重定向到http; // bob / login。 ASPX?RETURNURL = showmethemoney.aspx。 因此,如果您在用户登录后使用ReturnUrl重定向用户,则用户将始终返回到他们最初尝试访问的资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.