2011-08-03 4 views
0

私のasp.netのウェブサイトで私はFirefoxでログインできますが、Chrome、Internet Explorer、Safariではログインできません。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

あなたは常にユーザー名とパスワードを検証しますが、ユーザーが「Remember me」チェックボックスをオンにしている場合は、実際にリダイレクトするだけです。これは間違っています。いくつかのテストセッションでボックスにチェックを入れたが、他のセッションではチェックしなかったことはありますか? ;)

また、実際にユーザーがどこにでもログインしているという事実を保存していないので、後でUser.Identity.IsAuthenticatedがfalseのままで問題が発生しませんか?

あなたがリダイレクトを自分で行いたい場合は、FormsAuthentication.SetAuthCookieを使用して、リダイレクトを行うべきである...

をチェックボックスがチェックされているかどうかを FormsAuthentication.RedirectFromLoginPage Methodようなものを使用する必要があります。

EDIT:この

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

クッキーは、これらすべてのブラウザで有効になっている何ですか?既定では、クッキーが無効になっているときのフォールバックがないため、「動作していない」ASP.NETインスタント・メッセージの最も一般的な原因は、

+0

クッキーが有効になっている追加しましたすべてのブラウザで、私はクッキーをクリアしましたが、運はありません – Wahtever

1

http://localhostに当てはまる場合、ほとんどのブラウザは、メンバーシッププロバイダによって生成されたクッキーを保存しません。

この場合、ドットが入った名前でアクセスしてください。参照: Cookies on localhost with explicit domain

+0

私は使用しているカスタムの代わりにasp.netレディログオンコンポーネントを試しました。 – Wahtever

関連する問題