0

我在 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

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

4

1 回答 1

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 方法。

于 2013-01-10T07:35:34.163 回答