Freigeben über


DefaultAuthenticationModule.Authenticate Ereignis

Definition

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 ist null. Wenn die User -Eigenschaft ist null, legt das Beispiel die User Eigenschaft der aktuellen HttpContext Instanz auf ein GenericPrincipal -Objekt fest, wobei das Identity des GenericPrincipal -Objekts ein GenericIdentity mit dem Name Wert "default" ist.

Hinweis

Das DefaultAuthentication_OnAuthenticate-Ereignis wird vor dem AuthorizeRequest Ereignis ausgelöst. Wenn Sie die Eigenschaft der User aktuellen HttpContext Instanz auf eine benutzerdefinierte Identität festlegen, kann sich dies auf das Verhalten Ihrer Anwendung auswirken. Wenn Sie beispielsweise die FormsAuthentication -Klasse verwenden und im Abschnitt Autorisierungskonfiguration angeben<deny users="?" />, um sicherzustellen, dass nur authentifizierte Benutzer Zugriff auf Ihre Website haben, wird in diesem Beispiel das Deny-Element ignoriert, da der Benutzer einen Namen hat, der "Standard" lautet. Stattdessen geben Sie an<deny users="default" />, um sicherzustellen, 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 mit dem Namen 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, legt die DefaultAuthenticationModule - User Eigenschaft der HttpContext -Instanz auf ein GenericPrincipal Objekt fest, 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ängig ist, der den Zugriff auf Ihre Anwendung verweigern oder zulassen soll, kann sich das Ändern der User Eigenschaft der aktuellen HttpContext Instanz auf das Verhalten Ihrer Anwendung auswirken. Stellen Sie sicher, dass der Benutzername, den Sie während des DefaultAuthentication_OnAuthenticate-Ereignisses festgelegt haben, berücksichtigt wird, wenn Sie den Autorisierungsabschnitt in Ihrer Konfiguration angeben.

Hinweis

Wenn die Webanwendung in IIS 7.0 im integrierten Modus ausgeführt wird, wird das Authenticate Ereignis des DefaultAuthenticationModule 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 das Ereignis der HttpApplication Instanz, um eine AuthenticateRequest Authentifizierungsbenachrichtigung zu erhalten. Weitere Informationen zu Kompatibilitätsproblemen im integrierten Modus finden Sie unter Verschieben einer ASP.NET-Anwendung von IIS 6.0 zu IIS 7.0.

Gilt für:

Weitere Informationen