DefaultAuthenticationEventHandler-Delegat
Stellt die Methode dar, die das DefaultAuthentication_OnAuthenticate-Ereignis eines DefaultAuthenticationModule behandelt.
Namespace: System.Web.Security
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Delegate Sub DefaultAuthenticationEventHandler ( _
sender As Object, _
e As DefaultAuthenticationEventArgs _
)
'Usage
Dim instance As New DefaultAuthenticationEventHandler(AddressOf HandlerMethod)
public delegate void DefaultAuthenticationEventHandler (
Object sender,
DefaultAuthenticationEventArgs e
)
public delegate void DefaultAuthenticationEventHandler (
Object^ sender,
DefaultAuthenticationEventArgs^ e
)
/** @delegate */
public delegate void DefaultAuthenticationEventHandler (
Object sender,
DefaultAuthenticationEventArgs e
)
JScript unterstützt die Verwendung von Delegaten, aber nicht die Deklaration von neuen Delegaten.
Parameter
- sender
Die Quelle des Ereignisses.
- e
Eine Instanz der DefaultAuthenticationEventArgs-Klasse, die die Ereignisdaten enthält.
Hinweise
Der DefaultAuthenticationEventHandler-Delegat wird für das Authenticate-Ereignis der DefaultAuthenticationModule-Klasse definiert. 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. 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 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 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 sicherstellen, dass nur authentifizierte Benutzer auf die Site zugreifen können, indem Sie den authorization-Abschnitt verwenden und <deny users="?" />
angeben, wird in diesem Beispiel das deny-Element 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