AuthenticateRequest-Ereignis
Q-1. Nach meinem Verständnis FormsAuthenticationModule
abonniert AuthenticateRequest
Ereignis, und damit erst nach diesem Ereignis ausgelöst wird, ist FormsAuthenticationModule
genannt. Aber die folgenden Zitate hat mich ein bisschen verwirrt:
-
Den
AuthenticateRequest
Ereignis-Signale, die vom konfigurierten Authentifizierungsmechanismus authentifiziert hat, die der aktuellen Anforderung.- Nicht, das obige Zitat vermuten, dass, wenn
AuthenticateRequest
Ereignis ausgelöst wird, verlangen (aka Benutzer) ist bereits authentifiziert?
- Nicht, das obige Zitat vermuten, dass, wenn
-
Abonnieren Sie den
AuthenticateRequest
Fall sichergestellt, dass die Anforderung authentifiziert werden, bevor die Verarbeitung des angeschlossenen Modul oder einen event-handler.- Soweit ich das verstehe dieses Zitat, wenn wir abonnieren
AuthenticatedRequest
sind, dann ist unser event-handler aufgerufen werden, die vorFormsAuthenticationModule
? SoApplication_AuthenticateRequest()
wird aufgerufen, bevorFormsAuthenticationModule
genannt wird?
- Soweit ich das verstehe dieses Zitat, wenn wir abonnieren
Q 2. Buch ich Lerne aus deutet darauf hin, dass innerhalb Application_AuthenticateRequest()
sind wir in der Lage, zu überprüfen, ob der Benutzer Mitglied ist, der spezifischen Rolle, und wenn nicht, können wir hinzufügen, der Benutzer automatisch:
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated && Roles.Enabled)
{
//here we can subscribe user to a role via Roles.AddUserToRole()
}
}
Ausgehend von den obigen code Application_AuthenticateRequest()
aufgerufen wird, nachdem FormsAuthenticationModule
aufgerufen wurde, aber woanders dasselbe Buch impliziert, dass Application_AuthenticateRequest()
ist vor FormsAuthenticationModule
:
Application_AuthenticateRequest
wird aufgerufen, kurz bevor die Authentifizierung durchgeführt wird.
Dies ist ein jumping-off point für die Erstellung Ihrer eigenen Authentifizierung Logik.
Was bin ich?
Danke
InformationsquelleAutor der Frage SourceC | 2009-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass das FormsAuthenticationModule gehandhabt werden soll, zuerst. Dieses Modul ist normalerweise früher als jede custom module in der ASP.NET pipeline, so dass, wenn AuthenticateRequest ausgelöst wird, FormsAuthenticationModule erhalten zunächst aufgerufen, Ihre Arbeit tun und dann Ihren Modul event-handler aufgerufen wird.
Wenn Sie wirklich wollen, zu Graben tief in diese, ich schlage vor, versucht zu Debuggen ASP.NET code selbst. Hier ist ein post, wie Sie VS:
http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx
BEARBEITEN: ich war in der Lage, um dieses Verhalten zu bestätigen, indem Sie die Einrichtung eines web-Projekts mit benutzerdefinierten Modul und event-Handlern in der Globalen.asax. Werfen Sie einen Blick auf den Quellcode von HttpApplication.InitInternal, die Reihenfolge der Initialisierung ist wie folgt:
Nach Abschluss der Initialisierung, wenn das AuthenticateRequest feuert der event-Handler aufgerufen werden, in der Reihenfolge, wo initialisiert, so:
Es sei denn, ich etwas verpasst, es gibt keinen Mechanismus für die Arretierung der event-Handler, um Feuer, so egal, was das Ergebnis FormsAuthenticationModule.AuthenticateRequest, der nächste Handler wird immer noch aufgerufen werden. Ich hoffe, das hilft.
InformationsquelleAutor der Antwort bbmud
Wenn Sie möchten, den Zugang zu den User-Objekt, würde ich vorschlagen, Sie verwenden
InformationsquelleAutor der Antwort Shelakel