2011-08-03 31 views
0

我只能在Firefox中登錄,但不能在Chrome,Internet Explorer或Safari瀏覽器中登錄。asp.net只能在我的asp.net網站登錄firefox

這裏是我的代碼:

string userName = LoginUserName.Text; 
    string password = LoginPassword.Text; 

     if (Page.IsValid) 
    { 
     if (Membership.ValidateUser(userName, password)) 
     { 
      if (RemeberMe.Checked == true) 
      { 
       Response.Redirect("~/Home.aspx"); 
      } 
     } 
    } 

這裏是登錄表:

 <table> 
     <tr> 
      <td> 
       <asp:Label Text="Email:" AssociatedControlID="LoginUserName" runat="server" 
        id="LoginUserNamelabel" CssClass="label"></asp:Label> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:TextBox ID="LoginUserName" runat="server" Width="250px" CssClass="textbox"/> 
       <asp:RequiredFieldValidator id="LoginEmailRequired" runat="server" ControlToValidate="LoginUserName" 
        ErrorMessage="Email is required" ToolTip="Email is required"></asp:RequiredFieldValidator> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:Label Text="Password:" AssociatedControlID="LoginPassword" runat="server" 
        ID="LoginPasswordlabel" CssClass="label"></asp:Label> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:TextBox ID="LoginPassword" runat="server" TextMode="Password" Width="250px" CssClass="textbox" /> 
       <asp:RequiredFieldValidator ID="PassRequired" runat="server" ControlToValidate="LoginPassword" 
        ErrorMessage="Password is Required" ToolTip="Password is Required"></asp:RequiredFieldValidator> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:CheckBox ID="RemeberMe" runat="server" Text="Remember me" CssClass="RemeberMe" /> 
      </td> 
     </tr> 
     <tr> 
      <td><br /> 
       <asp:Button ID="LoginButton" runat="server" Text="Login" OnClick="autoLogin" CssClass="Button" /> 
      </td> 
     </tr> 
     <tr> 
      <td><br /> 
       <asp:Label ID="FailureText" runat="server" EnableViewState="false" Visible="false" CssClass="Lfaluire"> 
       Wrong Email or Password</asp:Label> 
      </td> 
     </tr> 
    </table> 

使用AspNetSqlMembershipProvider。

我使用asp.net 4.0,什麼問題 感謝

+0

什麼成員資格提供您使用?你的網頁是什麼樣的? –

+0

登錄按鈕在Chrome和Internet Explorer中是不可見的嗎? –

+0

我們需要這裏不存在的細節。 –

回答

1

您始終驗證用戶名和密碼,但只有在用戶選中「記住我」時才實際重定向 - 這看起來不正確。在某些測試會話中,您是否可以勾選某個複選框而不是其他複選框? ;)

此外,你實際上並沒有存儲用戶已經登錄的事實,所以你以後會不會有問題,User.Identity.IsAuthenticated仍然是錯誤的?

你應該使用類似 FormsAuthentication.RedirectFromLoginPage Method複選框是否被選中......

如果你想要做的重定向你自己,你應該使用FormsAuthentication.SetAuthCookie,然後做重定向。

編輯:事情是這樣的

string userName = LoginUserName.Text; 
string password = LoginPassword.Text; 

if (Page.IsValid) 
{ 
    if (Membership.ValidateUser(userName, password)) 
    { 
     if (RemeberMe.Checked) 
     { 
      // Set your own cookie here or something that you will later check for in Page_Load etc 
     } 

     // Need to tell ASP.NET authentication was successful 
     System.Web.Security.FormsAuthentication.SetAuthCookie(userName, True) 
     Response.Redirect("~/Home.aspx"); 
    } 
} 
+0

是的,你是絕對正確的我只是注意後發佈的問題,我不是實際上記錄用戶,但更像是驗證他的存在,但Mozilla正在使用緩存,這就是爲什麼我能夠登錄。我使用了其他的東西,如果複選框沒有被選中,它仍然會繼續。謝謝 – Wahtever

0

在所有這些瀏覽器中啓用cookie是什麼?開箱即用的ASP.NET登錄資料「不工作」的最常見罪魁禍首是因爲默認情況下,它們在禁用cookie時沒有後備功能。

+0

啓用了Cookie在所有的瀏覽器和我清除了餅乾,但沒有運氣 – Wahtever

1

如果您碰到http://localhost,那麼大多數瀏覽器都不會保存您的會員提供商生成的cookie。

如果是這種情況,請用名稱中包含點的方式訪問它。請參閱: Cookies on localhost with explicit domain

+0

我試過的asp.net準備登錄組件,而不是我正在使用的自定義一個,它的工作 – Wahtever

相關問題