我有一个 login.aspx。其中有一个重定向页面的代码。
Server.Transfer(string.Format("~/admin/FillUserExtraInfo.aspx?UserName={0}",Server.UrlEncode(loginInitial.UserName)));
它确实有效,然后在 FillUserExtraInfo.aspx
protected void Page_Load(object sender, EventArgs e)
{
// retrieve the username from the querystring
userName = this.Request.QueryString["UserName"];
string mode = UsefulFunctions.GetOperatingMode();
if (mode == ConfigurationSettingValues.OperatingModes.Backup.ToString())
FormsAuthentication.RedirectToLoginPage();
但是 FormsAuthentication.RedirectToLoginPage() 不起作用。程序继续向前执行,直到 Page_Load 结束,然后最终返回登录。
更新:在此期间,我发现 url bacomeshttp://localhost:53906/Login.aspx?ReturnUrl=%2fLogin.aspx%3fAction%3dLogout
最后。但我得到一个错误:
Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.
我的 web.config:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="30" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>
我的问题:
- 为什么 FormsAuthentication.RedirectToLoginPage() 不起作用?
- 如何处理我遇到的错误?
谢谢你。
第二次更新:我在 FormsAuthentication.RedirectToLoginPage() 之后添加了 Response.End() 然后它可以工作但异常仍然存在。