none
Login控件内直接按回车如何登录? RRS feed

  • 问题

  • 我自定义了Authenticate事件,在点击登录按钮后,验证没有问题

    <asp:Login ID="Login_User" runat="server" OnAuthenticate ="Login_User_Authenticate">
                <LayoutTemplate><table style="width: 275px">
                    <tr>
                        <td colspan="2" rowspan="1" style="width: 4px">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" rowspan="1" style="width: 4px">
                            <table style="width: 234px">
                                <tr class="login_row">
                                    <td style="width: 100px; text-align: right">
                                        用户名:</td>
                                    <td style="width: 126px; text-align: left;">
                                        <asp:TextBox ID="UserName" runat="server" Width="100px"></asp:TextBox></td>
                                </tr>
                                <tr class="login_row">
                                    <td style="width: 100px; text-align: right">
                                        密 码:</td>
                                    <td style="width: 126px; text-align: left;">
                                        <asp:TextBox ID="Password" runat="server" TextMode="Password" Width="100px"></asp:TextBox></td>
                                </tr>
                                <tr class="login_row">
                                    <td style="width: 100px; text-align: right">
                                        验证码:</td>
                                    <td style="width: 126px; text-align: left; vertical-align: bottom;">
                                        <asp:TextBox ID="CheckCode" runat="server" Width="50px"></asp:TextBox> <asp:ImageButton ID="imgValid" runat="server" ImageUrl="imageValidate.aspx" BorderColor="Red" BorderStyle="Solid" BorderWidth="1px" /></td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" rowspan="2" style="width: 4px; text-align: center;">
                            <asp:Button ID="Button1" runat="server" CommandName="Login" Text="登录" /></td>
                    </tr>
                    <tr></tr></table>
                </LayoutTemplate>
            </asp:Login>

    代码页:

    Partial Class manage_Default
        Inherits System.Web.UI.Page
        Protected Sub Login_User_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login_User.Authenticate
            Dim txtImage As TextBox = Login_User.FindControl("CheckCode")
            If Session("CheckCode").ToString.ToUpper = txtImage.Text.ToUpper Then
                If Membership.ValidateUser(Login_User.UserName, Login_User.Password) Then
                    e.Authenticated = True
                Else
                    Label_MSG.Text = "用户名、密码不匹配"
                End If
            Else
                Label_MSG.Text = "验证码错误"
            End If
        End Sub
    End Class

    在页面的验证码输完以后直接按回车,而没有点击登录按钮,并不会引发Authenticate事件

    我该如何做才能做到直接按回车也可以验证呢?

    另外还有个问题,为什么我加在login控件内的文本框无法直接访问呢?难道只能用Dim txtImage As TextBox = Login_User.FindControl("CheckCode")的方法来访问?


    • 已编辑 硬撅撅 2012年3月23日 6:24 输入错误
    2012年3月23日 6:21

答案

全部回复