Frage


A) Buch Ich lerne von sagt, dass, wenn wir Griff Login.Authenticate Veranstaltung, dann müssen wir Authentifizierung von Benutzern auf unseren eigenen. Somit wird die Steuerung nicht automatisch Benutzername und Passwort bestätigen. Ich dachte, Buch schlug dies nur passieren würde, wenn wir außer Kraft setzen Login.OnAuthenticate () Methode, aber es scheint, dass selbst dann, wenn nur ein Event-Handler für Authentifizieren Veranstaltung, die automatische Authentifizierung hinzufügen nicht geschieht.

Aber warum ist das so? Warum nicht Event-Handling Arbeit wie es funktioniert mit Init oder Laden Veranstaltungen, bei denen Sie im Wesentlichen haben außer Kraft zu setzen Page.OnInit () und < em> Page.OnLoad () , um Verstärkungssteuerung über Event-Handling?


B) überprüft ich MSDN-Website und es empfiehlt grundsätzlich, dass, wenn wir außer Kraft setzen Login.OnAuthenticate () , sollten wir auch nennen base.OnAuthenticate () . Aber dann, warum sollten wir müssen immer außer Kraft setzen Login.OnAuthenticate () , wenn wir den gleichen Effekt mit nur einen Event-Handler deklarieren für Login.Authenticate


Danke

War es hilfreich?

Lösung

Sie sollten nicht außer Kraft setzen OnAuthenticate . Mit dieser Methode wird nur intern entweder erhöht die AuthenticateEventArgs.Authenticated Eigenschaft.

Ereignis für die Authenticate Ereignisbehandlung funktioniert genauso wie für andere Veranstaltungen. Der einzige Unterschied ist, dass die Methode OnAuthenticate gewisse Logik hat, ob ein MembershipProvider oder einen registrierten Ereignisbehandlungsroutine für die Authentifizierung verwenden bestimmt.

Wenn Sie eine Unterklasse von Login und Überschreibung Login.OnAuthenticate schaffen machen, ist es ratsam, base.OnAuthenticate(...) zu nennen, weil sie die Logik enthält, die den registrierten Event-Handler aufruft. Wenn Sie nicht base.Authenticate(...) anrufen, sollten Sie die registrierten Event-Handler selbst nennen. Aber eine Unterklasse von Login schafft, ist wahrscheinlich in Ihrer Situation nicht erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top