2011-08-14 60 views
0

我有一個使用表單身份驗證的網站。出於某種原因,它在第一次運行時可以正常工作。但在第二次運行中,它說太多的重定向錯誤。表單身份驗證太多重定向問題

Loginpage:Load事件

protected void Page_Load(object sender, EventArgs e) 
      { 
       if (Request.IsAuthenticated) 
       { 
        Response.Redirect("HomePage.aspx"); 
       } 

      } 

登錄頁面提交憑據

protected void btnSubmit_Click(object sender, EventArgs e) 
     { 
      int recordExistCount = fc.Authenticate(txtUsername.Text.Trim(), txtPassword.Text.Trim()); 
      if (recordExistCount == 1) 
      { 
       Session["User"] = "Authenticated"; 
       Session["Username"] = txtUsername.Text.Trim(); 
       fc.IsOnlineRecord(Session["Username"].ToString(),true); 
       FormsAuthentication.RedirectFromLoginPage(Session["Username"].ToString(), true); 
       Response.Redirect("HomePage.aspx"); 
      } 
      else 
      { 
       lblStatus.Text = "Username or password specified are incorrect"; 
       lblStatus.BackColor = Color.Yellow;    
      } 
     } 

母版signout按鈕

protected void lbSignOut_Click(object sender, EventArgs e) 
     { 
      Session.Abandon(); 
      FormsAuthentication.SignOut(); 
      Response.Redirect("LoginPage.aspx"); 
     } 

回答

0

試試這個

在LoginPage.aspx

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Request.QueryString["action"] != null && Request.QueryString["action"] == "logout") 
    { 
     Session.Abandon(); 
     FormsAuthentication.SignOut(); 
    } 
    else 
    { 
     if (HttpContext.Current.User.IsAuthenticated) 
     { 
      Response.Redirect("HomePage.aspx"); 
     } 
    } 
} 

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    int recordExistCount = fc.Authenticate(txtUsername.Text.Trim(), txtPassword.Text.Trim()); 
    if (recordExistCount == 1) 
    { 
     Session["User"] = "Authenticated"; 
     Session["Username"] = txtUsername.Text.Trim(); 
     fc.IsOnlineRecord(Session["Username"].ToString(), true); 
     FormsAuthentication.RedirectFromLoginPage(Session["Username"].ToString(), true); 
    } 
    else 
    { 
     lblStatus.Text = "Username or password specified are incorrect"; 
     lblStatus.BackColor = Color.Yellow; 
    } 
} 

而且在母版標記,放置一個asp:LoginStatus這樣

<asp:LoginStatus ID="AdminLoginStatus" runat="server" 
     LogoutAction="RedirectToLoginPage" 
     LogoutText="Log Out" 
     LogoutPageUrl="~/LoginPage.aspx?action=logout"/> 
+0

都能跟得上好友。我仍然得到了過多的重定向問題 –

+1

讓我看看你的web.config形式的標籤 – naveen

+0

我有同樣的錯誤@naveen 以下是我的web.config文件中的數據..看到代碼 \t \t <的sessionState超時= 「72000」 模式= 「是InProc」 無Cookie = 「UseCookies」> \t \t \t \t <彙編調試= 「真」 targetFramework = 「4.0」> \t \t \t \t \t \t \t \t \t <認證模式= 「表單」> \t \t \t <形式名稱= 「登錄」 loginUrl = 「登錄/ Default.aspx的」 defaultUrl = 「〜/ allRedirect/Default.aspx的」 超時= 「80」/> \t \t \t \t <授權> \t \t \t <允許用戶= 「*」/> \t \t \t <拒絕用戶= 「?」/> \t \t sidhewsar