0

今は機能していることを気にしないでください(理由はわかりませんが、大丈夫です)。皆さんの助けに感謝します。

私はここにユーザー名の代わりに電子メールでユーザーをログインさせるコードを書きました:

 protected void eLogin(object sender, EventArgs e) //allowing users to login with email
{
    string uid = Membership.GetUserNameByEmail(mainLogin.UserName);
    mainLogin.UserName = null;
    mainLogin.UserName = uid;
}

ログインコントロールは次のとおりです。

<asp:Login ID="mainLogin" runat="server" Orientation="Horizontal" 
    RememberMeText="Remember me" TitleText="" 
    DestinationPageUrl="~/RedirectPage.aspx" 
    OnLoggingIn="eLogin"
     >
    <CheckBoxStyle CssClass="remBox" />
    <LoginButtonStyle CssClass="loginButton" />
    <TextBoxStyle CssClass="loginTextBox" />
</asp:Login>

ただし、ローカルホストでのみ機能し、実際のホスティングでは機能しません。 ここに問題があります:あなたのログインの試みは成功しませんでした。もう一度やり直してください。

asp.net 3.5を使用しています、よろしくお願いします

4

2 に答える 2

0

あなたはあなたのエラーを投稿しなかったので、私はあなたMembership.GetUserNameByEmailが失敗していると推測することしかできません。データベースへの接続が失敗しているか、接続しているデータベースにユーザーが存在しません。

于 2011-04-22T10:22:07.243 に答える
0

ユーザーは、メンバーシッププロバイダーのValidateUser関数の結果に基づいてログインします。これは、カスタムメンバーシッププロバイダーを使用していない場合、ユーザー名フィールドに対して検証している可能性があります。テスト環境では、実際に使用している電子メールが特定のアカウントのユーザー名である可能性があります。そのため、ある場所では機能し、他の場所では機能しません。

于 2011-04-22T12:02:04.593 に答える