16. marts 2006 - 13:53
Der er
22 kommentarer og 1 løsning
detect Membership.MaxInvalidPasswordAttempts
Jeg bruger (i.net2.0) den indbyggede LoginControl. Hvis brugerne indtaster forkert password fem gange, så sættes jo IsLockedOut=true. Så er det, jeg gerne vil kunne vise en besked, "Din konto er låst pga. for mange forsøg, kontakt administrator", hvis brugeren forsøger at logge på. Hvordan gør man det? Kan man fange når Membership.MaxInvalidPasswordAttempts når grænsen? Eller noget?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
16. marts 2006 - 14:16
#1
I Onauthenticate kan du lave noget i denne stil: If (Not Membership.GetUser(userName) Is Nothing) If(Membership.GetUser(userName).IsLockedOut = true) lblResults.Text = lblResults.Text & " <b>Your account has been locked out.</b>" End If End If
16. marts 2006 - 14:18
#2
i c# if ((Membership.GetUser(userName) != null) && (Membership.GetUser(userName).IsLockedOut == true)) lblResults.Text += " <b>Your account has been locked out.</b>";
16. marts 2006 - 14:18
#3
Du får username ud med dinlogindcontrol.Username
16. marts 2006 - 14:22
#4
Jamen det vil jeg prøve
16. marts 2006 - 14:31
#5
... er det noget i denne stil (Jeg tænker på formatet af OnAuthenticate inkl. kald til den oprindelige metode) ? override protected void OnAuthenticate(AuthenticateEventArgs e) { if ((Membership.GetUser(Login1.userName) != null) && (Membership.GetUser(Login1.userName).IsLockedOut == true)) { // skriv det der nu skalk skrives } base.OnAuthenticate(e) }
16. marts 2006 - 14:41
#6
nej det er på selve logind siden. der er på din logind kontrol en event som hedder Onauthenticate.
16. marts 2006 - 14:48
#7
ok, så jeg har dette: <asp:Login ID="Login1" runat="server" OnAuthenticate="" DestinationPageUrl="LoggedIn.aspx" > laver jeg så et metodekald, OnAuthenticate="MinMetode" ?
16. marts 2006 - 15:05
#8
protected void TryAuthenticate(object sender, EventArgs e) { if ((Membership.GetUser(Login1.userName) != null) && (Membership.GetUser(Login1.userName).IsLockedOut == true)) { // skriv det der nu skalk skrives Login1.FailureText = "Din konto er låst"; } }
16. marts 2006 - 15:06
#9
<asp:Login ID="Login1" OnLoggingIn="TryAuthenticate" runat="server"> </asp:Login>
16. marts 2006 - 15:07
#10
rettelse : protected void TryAuthenticate(object sender, LoginCancelEventArgs e) { if ((Membership.GetUser(Login1.userName) != null) && (Membership.GetUser(Login1.userName).IsLockedOut == true)) { // skriv det der nu skalk skrives Login1.FailureText = "Din konto er låst"; e.Cancel = true; } }
16. marts 2006 - 15:07
#11
Tak, så er den vist ved at være der. SMid et svar for points...
16. marts 2006 - 15:07
#12
med den sidste sikre du at login forsøget afbrydes.
16. marts 2006 - 15:09
#13
... og hvad har det at sige, at forsøget afbrydes?
16. marts 2006 - 15:14
#14
så kalder den aldrig optil databasen for at validere i det tilfælde brugeren er låst svar :)
16. marts 2006 - 16:04
#15
AuthenticateEventArgs skal det være...
16. marts 2006 - 16:06
#16
ikke hvis du bruger OnLoggingIn eventet som mig
16. marts 2006 - 16:09
#17
arh... den havde jeg så lige overset... ok.
16. marts 2006 - 16:16
#18
... og så var der lige det problem, at man ikke kan referere direkte til Login, så dette blev resultatet, som virker: protected void TestLockedOut(object sender, LoginCancelEventArgs e) { Login login = (Login)sender; if ((Membership.GetUser(login.UserName) != null) && (Membership.GetUser(login.UserName).IsLockedOut == true)) { e.Cancel = true; Response.Redirect("Error.aspx"); } }
16. marts 2006 - 16:18
#19
Hvad hedder din login control ?
16. marts 2006 - 16:22
#20
Den hedder Login1, men den er gemt inden i en template, og så kan man ikke refere til den, så vidt jeg forstår.
16. marts 2006 - 16:23
#21
ah jeg ellers er det noget med findcontrol og noget skidt på den måde. Så den måde du gør det på er helt perfekt.
16. marts 2006 - 16:27
#22
... ja, det er netop FinControl som ikke kan krydse ind i en tamplate. Man hvad f... nu virker det da.
16. marts 2006 - 16:30
#23
jeps :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.