2013-06-21 158 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()。