DefaultAuthenticationModule.Authenticate Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt ein, nachdem die Anforderung authentifiziert wurde.
public:
event System::Web::Security::DefaultAuthenticationEventHandler ^ Authenticate;
public event System.Web.Security.DefaultAuthenticationEventHandler Authenticate;
member this.Authenticate : System.Web.Security.DefaultAuthenticationEventHandler
Public Custom Event Authenticate As DefaultAuthenticationEventHandler
Ereignistyp
Beispiele
Im folgenden Codebeispiel wird das DefaultAuthentication_OnAuthenticate-Ereignis verwendet, um zu testen, ob die User Eigenschaft der aktuellen HttpContext Instanz lautet null. Wenn die User Eigenschaft lautet null, legt das Beispiel die User Eigenschaft der aktuellen HttpContext Instanz auf ein GenericPrincipal Objekt fest, bei dem das IdentityGenericPrincipal Objekt ein GenericIdentity Wert Name von "default" ist.
Hinweis
Das DefaultAuthentication_OnAuthenticate-Ereignis wird vor dem AuthorizeRequest Ereignis ausgelöst. Wenn Sie daher die User Eigenschaft der aktuellen HttpContext Instanz auf eine benutzerdefinierte Identität festlegen, kann sie sich auf das Verhalten Ihrer Anwendung auswirken. Wenn Sie beispielsweise die FormsAuthentication Klasse verwenden und im Abschnitt für die Autorisierungskonfiguration angeben<deny users="?" />, um sicherzustellen, dass nur authentifizierte Benutzer Zugriff auf Ihre Website haben, führt dieses Beispiel dazu, dass das Verweigerungselement ignoriert wird, da der Benutzer einen Namen hat, der "Standard" lautet. Stattdessen würden Sie angeben<deny users="default" />, dass nur authentifizierte Benutzer auf Ihre Website zugreifen können.
public void DefaultAuthentication_OnAuthenticate(object sender,
DefaultAuthenticationEventArgs args)
{
if (args.Context.User == null)
args.Context.User =
new System.Security.Principal.GenericPrincipal(
new System.Security.Principal.GenericIdentity("default"),
new String[0]);
}
Public Sub DefaultAuthentication_OnAuthenticate(sender As Object, _
args As DefaultAuthenticationEventArgs)
If args.Context.User Is Nothing Then
args.Context.User = _
new System.Security.Principal.GenericPrincipal( _
new System.Security.Principal.GenericIdentity("default"), _
new String(0) {})
End If
End Sub
Hinweise
Das Authenticate Ereignis wird nach dem AuthenticateRequest Ereignis ausgelöst. Es wird verwendet, um sicherzustellen, dass die User Eigenschaft der aktuellen HttpContext Instanz mit einem IPrincipal Objekt aufgefüllt wird.
Sie können auf das Authenticate Ereignis der DefaultAuthenticationModule Klasse zugreifen, indem Sie eine Unterroutine namens DefaultAuthentication_OnAuthenticate in der Datei "Global.asax" der Anwendung angeben.
Sie können die Context Eigenschaft des DefaultAuthenticationEventArgs Objekts im DefaultAuthentication_OnAuthenticate-Ereignis verwenden, um die User Eigenschaft der aktuellen HttpContext Instanz auf ein benutzerdefiniertes IPrincipal Objekt festzulegen. Wenn Sie keinen Wert für die User Eigenschaft angeben, wird die DefaultAuthenticationModuleUser Eigenschaft der HttpContext Instanz auf ein GenericPrincipal Objekt festgelegt, das keine Benutzerinformationen enthält.
Das DefaultAuthentication_OnAuthenticate-Ereignis wird nach dem AuthenticateRequest Ereignis und vor dem AuthorizeRequest Ereignis ausgelöst. Wenn Sie über einen authorization Abschnitt verfügen, der vom Benutzernamen abhängt, um den Zugriff auf Ihre Anwendung zu verweigern oder zuzulassen, kann das Ändern der User Eigenschaft der aktuellen HttpContext Instanz das Verhalten Ihrer Anwendung beeinflussen. Achten Sie darauf, dass der während des DefaultAuthentication_OnAuthenticate Ereignisses festgelegte Benutzername berücksichtigt wird, wenn Sie den Autorisierungsbereich in Ihrer Konfiguration angeben.
Hinweis
Wenn die Webanwendung im integrierten Modus in IIS 7.0 ausgeführt wird, wird das Authenticate Ereignis des DefaultAuthenticationModule Ereignisses nicht ausgelöst. Wenn das mode Attribut des Authentifizierungskonfigurationselements auf "None" festgelegt ist und die Anwendung das Authenticate Ereignis abonniert, wird ein PlatformNotSupportedException Fehler ausgelöst. Abonnieren Sie in diesem Szenario zum Empfangen einer Authentifizierungsbenachrichtigung das AuthenticateRequest Ereignis der HttpApplication Instanz. Weitere Informationen zu Kompatibilitätsproblemen im integrierten Modus finden Sie unter Verschieben einer ASP.NET Anwendung von IIS 6.0 auf IIS 7.0.