从母版页注销后出错

时间:2013-01-10 07:25:15

标签: asp.net authentication response.redirect

我在asp.net 2005中创建了角色身份验证示例。我在default.aspx页面上创建了登录面板,登录后工作正常。我使用下面的代码登录

FormsAuthentication.RedirectFromLoginPage(txtUName.Text, true, urlpath);
FormsAuthentication.SetAuthCookie(txtUName.Text, true);
Response.Redirect(urlpath, false);

我在登录后显示的单个母版页中使用了所有必需的页面链接。 我使用主页中的代码进行“注销”,如下面点击链接按钮

 try
 {
      Response.Redirect("~/Logout.aspx" );
 }
 catch (Exception ee)
 { 
      return;
 }

现在当我从母版页退出时,我收到了类似的错误

unable to evaluate expression because the code is optimized or native frame is on top of call stack

我已经护目镜但没有得到解决方案。我无法找出背后的原因。 请提供适当的解决方案。 感谢

1 个答案:

答案 0 :(得分:2)

http://support.microsoft.com/kb/312629/en-us

要解决此问题,请使用以下方法之一: •对于Response.End,调用HttpContext.Current.ApplicationInstance.CompleteRequest方法而不是Response.End以绕过代码执行到Application_EndRequest事件。

•对于Response.Redirect,使用一个重载,Response.Redirect(String url,bool endResponse),它为endResponse参数传递false以禁止对Response.End的内部调用。例如:   Response.Redirect(“nextpage.aspx”,false);

如果使用此解决方法,则会执行Response.Redirect之后的代码。 •对于Server.Transfer,请改用Server.Execute方法。