2013-06-21 103 views
0

我得到一个重定向循环,我不知道为什么。我有这个简单的代码被使用,所以如果有人去default.aspx,并已登录它应该重定向到inside.aspx。为什么我得到一个重定向循环?重定向循环当重定向到另一个页面时登录

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (User.Identity.IsAuthenticated) // if the user is already logged in 
     { 
      Response.Redirect("inside.aspx"); 
     } 
    } 

} 

编辑:

两个页面分享下面的代码母版页,这只是熄灭时注销控制推:

public partial class template : System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e) 
    { 
     Response.Redirect("default.aspx"); 
     Session.Abandon(); 
    } 
} 
+1

inside.aspx的代码隐藏看起来像什么?你有什么重写规则(如果有的话)? –

+0

inside.aspx后面的c#代码目前是空的。我是新来的asp.net,但我查找重写规则,我不相信我做了什么。这两个页面与代码共享母版页,我会在上面发布。 –

回答

0

问题是两个文件的CodeFile引用是相同的。愚蠢的错误,但如果你有这个问题,一定要检查它!

1

我假设你问的是,当你尝试注销时,页面会再次重定向到默认页面。原因是您在重定向后清除会话,所以Session.Abandon()不会被调用。但是我不知道你的验证是否真的依赖于Session.Abandon(),在这种情况下你将再次看到重定向。

protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e) 
     { 
      Session.Abandon(); 
      Response.Redirect("default.aspx"); 
     } 

如果您使用会员供应商,签出的可配置用户注销后自动重定向defaultUrl。要手动触发注销,请使用FormsAuthentication.SignOut()。