0

私はlogin controlasp.netで使用しています。
ユーザー名の代わりにメールIDを使用してログインしています。
それはうまく機能しています。
コントロールを使用し<asp:RegularExpressionValidator />て電子メールIDテキストボックスを検証することにより、電子メールIDを確認しています。emailidテキストボックスのIDとしてプロパティ
を指定しました。 ログインボタンをクリックすると、検証されてエラーメッセージが表示されます。 しかし、これはここでのログインを停止するものではありません。 間違った電子メールIDテキストボックスの値とパスワードを使用してログインしようとし、ユーザーが電子メールIDを正しい形式でのみ入力した場合に発生するはずです。 簡単に言えば、ログイン制御はControlToValidate
Email should be in correct format

You are not register user

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)

電子メールが正しい形式ではないと言っている正規表現バリデーターにもかかわらず、イベント。

ログインコントロールのこのログイン動作を停止するにはどうすればよいですか?

これが私の正規表現です:

<asp:RegularExpressionValidator ID="emaildValidate" runat="server" 
     ErrorMessage="Email should be in correct format" 
     SetFocusOnError="True" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
     ControlToValidate="UserName" ValidationGroup="Login1">
</asp:RegularExpressionValidator>

ボタンのHTML

<asp:Button ID="LoginButton" CssClass="loginbutton" runat="server" CommandName="Login"
                                        Text="Sign In" ValidationGroup="Login1" OnClick="LoginButton_Click" />
4

2 に答える 2

2

これが私のためのログインコントロールであり、私にとってはうまく機能します。あなたのものをチェックしてください

<asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false">
        <LayoutTemplate>
            <span class="failureNotification">
                <asp:Literal ID="FailureText" runat="server"></asp:Literal>
            </span>
            <asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failureNotification" 
                 ValidationGroup="LoginUserValidationGroup"/>
            <div class="accountInfo">
                <fieldset class="login">
                    <legend>Account Information</legend>
                    <p>
                        <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Email:</asp:Label>
                        <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                             CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                             ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
                             <asp:RegularExpressionValidator ID="emaildValidate" runat="server" 
     ErrorMessage="Email should be in correct format" 
     SetFocusOnError="True" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
     ControlToValidate="UserName" ValidationGroup="LoginUserValidationGroup">
</asp:RegularExpressionValidator>
                    </p>
                    <p>
                        <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
                        <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                             CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." 
                             ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
                    </p>
                    <p>
                        <asp:CheckBox ID="RememberMe" runat="server"/>
                        <asp:Label ID="RememberMeLabel" runat="server" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label>
                    </p>
                </fieldset>
                <p class="submitButton">
                    <asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="LoginUserValidationGroup"/>
                </p>
            </div>
        </LayoutTemplate>
    </asp:Login>
于 2013-02-11T12:52:25.940 に答える
0

あなたはあなたがそうではないことを検証していることに言及していますがemailidusernameあなたが持っている必須フィールドバリデーターで

    ControlToValidate="UserName".

メール テキスト ボックスの名前がユーザー名の場合は問題ありません。それ以外の場合は、正しいテキスト ボックスを検証します。

于 2013-02-11T12:09:31.250 に答える