2011-08-13 84 views
1
<authentication mode="Forms"> 
     <forms loginUrl="LoginPage.aspx" 
      protection="All" 
      timeout="1" 
      name=".ASPXAUTH" 
      path="/" 
      requireSSL="false" 
      slidingExpiration="false" 
      defaultUrl="HomePage.aspx" 
      cookieless="UseDeviceProfile" 
      enableCrossAppRedirects="false"/> 
     </authentication> 

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;    
      } 
     } 

表單身份驗證無法正常工作。在一次成功的登錄後,我去了網站的網址,它不去首頁,而是再次帶我到登錄頁面。 我在做什麼錯?表單身份驗證問題

+0

什麼是您的登錄機制的代碼 - 你在做什麼在LoginPage.aspx – stack72

+0

後面的代碼沒有關於formsauthentication類。它只是在登錄頁面進行憑證檢查,在成功登錄後重定向到homepage.aspx –

回答

0

看起來好像你沒有設置Formsauthentication。因此,在LoginPage.aspx後面的代碼中 - 在登錄點擊事件中嘗試類似這樣的事情

protected void btnLogin_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       //get the user details and authenticate them against whatever means you need to 
       FormsAuthentication.RedirectFromLoginPage(authenticatedUser.Email, false); 
       Response.Redirect("~/HomePage.aspx"); 
      } 
      catch 
      { 
       //catch any errors here 
      } 
     } 
+0

我已經使用代碼隱藏文件編輯了問題。我錯過了什麼? –

+0

沒有朋友它沒有工作。我已將代碼添加到文件 –

+0

後面的代碼中,您還需要查看@ blowdart對TimeOut的回答 – stack72

0

您是如何執行登錄的?是用登錄控件還是手動執行?

如果您正在使用手動方式通過fiddler運行您的應用程序,並查看是否正在創建和刪除.ASPAUTH Cookie。從一分鐘增加超時。發佈您的手動代碼,以便我們可以看到您如何創建令牌。

2

增加超時。 1分鐘是令人難以置信的低。我相信20分鐘是默認值。此外,請將滑動感受設置爲true,否則每個用戶都需要在1分鐘後重新進行身份驗證。