Freigeben über


DefaultAuthenticationModule.Authenticate-Ereignis

Tritt ein, nachdem die Anforderung authentifiziert wurde.

Namespace: System.Web.Security
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public Event Authenticate As DefaultAuthenticationEventHandler
'Usage
Dim instance As DefaultAuthenticationModule
Dim handler As DefaultAuthenticationEventHandler

AddHandler instance.Authenticate, handler
public event DefaultAuthenticationEventHandler Authenticate
public:
event DefaultAuthenticationEventHandler^ Authenticate {
    void add (DefaultAuthenticationEventHandler^ value);
    void remove (DefaultAuthenticationEventHandler^ value);
}
/** @event */
public void add_Authenticate (DefaultAuthenticationEventHandler value)

/** @event */
public void remove_Authenticate (DefaultAuthenticationEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Das Authenticate-Ereignis wird nach dem AuthenticateRequest-Ereignis ausgelöst. Damit wird sichergestellt, dass die User-Eigenschaft des aktuellen HttpContext mit einem IPrincipal-Objekt aufgefüllt wird.

Sie können auf das Authenticate-Ereignis der DefaultAuthenticationModule-Klasse zugreifen, indem Sie in der Datei Global.asax eine Unterroutine mit dem Namen DefaultAuthentication_OnAuthenticate für die ASP.NET-Anwendung angeben.

Sie können die Context-Eigenschaft des für das DefaultAuthentication_OnAuthenticate-Ereignis bereitgestellten DefaultAuthenticationEventArgs-Objekts verwenden, um die User-Eigenschaft des aktuellen HttpContext für ein benutzerdefiniertes IPrincipal-Objekt festzulegen. Wenn Sie für die User-Eigenschaft des während des DefaultAuthentication_OnAuthenticate-Ereignisses bereitgestellten HttpContext keinen Wert angeben, legt das DefaultAuthenticationModule die User-Eigenschaft von HttpContext 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 ein authorization-Abschnitt vorhanden ist, bei dem je nach Benutzernamen der Zugriff auf die Anwendung gewährt oder verweigert wird, beeinflusst ein Ändern der User-Eigenschaft des aktuellen HttpContext möglicherweise das Verhalten der Anwendung. Sie müssen den während des DefaultAuthentication_OnAuthenticate-Ereignisses festgelegten Benutzernamen berücksichtigen, wenn Sie den authorization-Abschnitt in der Konfiguration angeben.

Beispiel

Im folgenden Codebeispiel wird mithilfe des DefaultAuthentication_OnAuthenticate-Ereignisses überprüft, ob die User-Eigenschaft des aktuellen HttpContext NULL (Nothing in Visual Basic) ist. Wenn die User-Eigenschaft NULL (Nothing in Visual Basic) ist, wird im Beispiel die User-Eigenschaft des aktuellen HttpContext auf ein GenericPrincipal-Objekt festgelegt, wobei es sich bei der Identity des GenericPrincipal-Objekts um eine GenericIdentity mit dem Name-Wert "default" handelt.

Hinweis

Das DefaultAuthentication_OnAuthenticate-Ereignis wird vor dem AuthorizeRequest-Ereignis ausgelöst. Daraus ergibt sich, dass beim Festlegen der User-Eigenschaft des aktuellen HttpContext auf eine benutzerdefinierte Identität das Verhalten der Anwendung beeinflusst werden kann. Wenn Sie beispielsweise die FormsAuthentication-Klasse verwenden und <deny users="?" /> im authorization-Konfigurationsabschnitt angeben, damit nur authentifizierte Benutzer auf die Site zugreifen können, wird in diesem Beispiel das Element deny ignoriert, da der Benutzer den Namen "default" trägt. Sie würden hingegen <deny users="default" /> angeben, damit ausschließlich authentifizierte Benutzer auf die Site zugreifen können.

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
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]);
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DefaultAuthenticationModule-Klasse
DefaultAuthenticationModule-Member
System.Web.Security-Namespace

Weitere Ressourcen

Authentifizierung in ASP.NET
Syntax von "Global.asax"