Freigeben über


DefaultAuthenticationModule-Klasse

Stellt sicher, dass ein Authentifizierungsobjekt im Kontext vorhanden ist. Diese Klasse kann nicht geerbt werden.

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

Syntax

'Declaration
Public NotInheritable Class DefaultAuthenticationModule
    Implements IHttpModule
'Usage
Dim instance As DefaultAuthenticationModule
public sealed class DefaultAuthenticationModule : IHttpModule
public ref class DefaultAuthenticationModule sealed : IHttpModule
public final class DefaultAuthenticationModule implements IHttpModule
public final class DefaultAuthenticationModule implements IHttpModule

Hinweise

Das DefaultAuthenticationModule stellt sicher, dass die User-Eigenschaft des aktuellen HttpContext für alle Anforderungen auf ein IPrincipal-Objekt festgelegt wird. Das DefaultAuthenticationModule überprüft die User-Eigenschaft nach dem AuthenticateRequest-Ereignis und vor dem AuthorizeRequest-Ereignis. Wenn die User-Eigenschaft NULL (Nothing in Visual Basic) ist, legt das DefaultAuthenticationModule die User-Eigenschaft auf ein GenericPrincipal-Objekt fest, das keine Benutzerinformationen enthält.

Wenn das Authentifizierungsmodul die StatusCode-Eigenschaft auf 401 festlegt, schreibt das DefaultAuthenticationModule eine besondere Fehlerseite mit der Meldung, dass der Zugriff verweigert wird. Wenn der Wert der StatusCode-Eigenschaft auf einen Wert über 200 festgelegt wird, beendet das DefaultAuthenticationModule-Objekt die Anforderung, und es werden nur HTTP-Module, die das EndRequest-Ereignis abonnieren, vor Abschluss der aktuellen Anforderung aufgerufen.

Das DefaultAuthenticationModule macht ein Authenticate-Ereignis verfügbar, mit dem Sie ein benutzerdefiniertes IPrincipal-Objekt für die User-Eigenschaft des aktuellen HttpContext bereitstellen können. Der Zugriff auf das Authenticate-Ereignis erfolgt durch Angeben eines Ereignisses mit dem Namen DefaultAuthentication_OnAuthenticate in der Datei Global.asax für die ASP.NET-Anwendung.

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

Vererbungshierarchie

System.Object
  System.Web.Security.DefaultAuthenticationModule

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

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-Member
System.Web.Security-Namespace

Weitere Ressourcen

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