Microsoft Visual Studio – ASP.Net How to Access the UserName Textbox of a LoginView Control’s Login Control and Manipulate the FailureText

Let’s say you have your web.config set to allow the user only 3 attempts to get the password correct when logging in. After 3 attempts, the profile table sets the isLockedOut column to ‘True’. You want to display this to the user after their 3rd attempt at loggin in.

Behind your Login.aspx form, create the LoginError event and use the following code:

Protected Sub Login1_LoginError(sender As Object, e As System.EventArgs)

   Dim lg As System.Web.UI.WebControls.Login = DirectCast(LoginView1.FindControl("Login1"), System.Web.UI.WebControls.Login)
    Dim tb As TextBox = DirectCast(lg.FindControl("UserName"), TextBox)
    Dim mUser As MembershipUser = Membership.GetUser(tb.Text)

    If mUser.IsLockedOut = True Then
       lg.FailureText = "Too many invalid login attempts. Contact administrator of this website"
    End If

End Sub

The first thing the code does is retrieve the actual UserName textbox from the control as a textbox. The next step takes the string value of the textbox which is the user’s name, calls the GetUser method of the Membership API, and assigns it to your ‘mUser’ MembershipUser object. Next, you test ‘mUser’ to see if the reason for logon failure was due to lock out. If so, modify the FailureText of the Login control to tell the user that they are locked out and to contact their administrator.

 

Leave a Reply