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.