Freigeben über


FormsAuthenticationEventHandler-Delegat

Stellt die Methode dar, die das FormsAuthentication_OnAuthenticate-Ereignis eines FormsAuthenticationModule behandelt.

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

Syntax

'Declaration
Public Delegate Sub FormsAuthenticationEventHandler ( _
    sender As Object, _
    e As FormsAuthenticationEventArgs _
)
'Usage
Dim instance As New FormsAuthenticationEventHandler(AddressOf HandlerMethod)
public delegate void FormsAuthenticationEventHandler (
    Object sender,
    FormsAuthenticationEventArgs e
)
public delegate void FormsAuthenticationEventHandler (
    Object^ sender, 
    FormsAuthenticationEventArgs^ e
)
/** @delegate */
public delegate void FormsAuthenticationEventHandler (
    Object sender, 
    FormsAuthenticationEventArgs e
)
JScript unterstützt die Verwendung von Delegaten, aber nicht die Deklaration von neuen Delegaten.

Parameter

  • sender
    Die Quelle des Ereignisses.

Hinweise

Der FormsAuthenticationEventHandler-Delegat wird für das Authenticate-Ereignis der FormsAuthenticationModule-Klasse definiert. Sie können auf das Authenticate-Ereignis der FormsAuthenticationModule-Klasse zugreifen, indem Sie in der Datei Global.asax eine Unterroutine mit dem Namen FormsAuthentication_OnAuthenticate für die ASP.NET-Anwendung angeben. Das Authenticate-Ereignis wird während des AuthenticateRequest-Ereignisses ausgelöst.

Das FormsAuthenticationModule erstellt mithilfe des aktuellen HttpContext ein FormsAuthenticationEventArgs-Objekt und übergibt es an das FormsAuthentication_OnAuthenticate-Ereignis.

Sie können die User-Eigenschaft des für das FormsAuthentication_OnAuthenticate-Ereignis bereitgestellten FormsAuthenticationEventArgs-Objekts verwenden, um die User-Eigenschaft des aktuellen HttpContext für ein benutzerdefiniertes IPrincipal-Objekt festzulegen. Wenn Sie während des FormsAuthentication_OnAuthenticate-Ereignisses keinen Wert für die User-Eigenschaft angeben, wird die vom Formularauthentifizierungsticket im Cookie oder URL bereitgestellte Identität verwendet.

Das FormsAuthentication_OnAuthenticate-Ereignis wird nur ausgelöst, wenn der Authentifizierungs-Mode auf Forms festgelegt wurde und das FormsAuthenticationModule ein aktives HTTP-Modul für die Anwendung ist.

Beispiel

Im folgenden Codebeispiel wird mithilfe des FormsAuthentication_OnAuthenticate-Ereignisses die User-Eigenschaft des aktuellen HttpContext auf ein GenericPrincipal-Objekt mit einer benutzerdefinierten Identity festgelegt.

Public Sub FormsAuthentication_OnAuthenticate(sender As Object, _
                                              args As FormsAuthenticationEventArgs)
  If FormsAuthentication.CookiesSupported Then
    If Not Request.Cookies(FormsAuthentication.FormsCookieName) Is Nothing Then
      Try
        Dim ticket As FormsAuthenticationTicket = FormsAuthentication.Decrypt( _
          Request.Cookies(FormsAuthentication.FormsCookieName).Value)
        
        args.User = New System.Security.Principal.GenericPrincipal( _
          New Samples.AspNet.Security.MyFormsIdentity(ticket), _
          New String(0) {})
      Catch e As HttpException
        ' Decrypt method failed.
      End Try
    End If
  Else
      Throw New Exception("Cookieless Forms Authentication is not " & _
                            "supported for this application.")
  End If
End Sub
public void FormsAuthentication_OnAuthenticate(object sender, FormsAuthenticationEventArgs args)
{
  if (FormsAuthentication.CookiesSupported)
  {
    if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
    {
      try
      {
        FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(
          Request.Cookies[FormsAuthentication.FormsCookieName].Value);
        
        args.User = new System.Security.Principal.GenericPrincipal(
          new Samples.AspNet.Security.MyFormsIdentity(ticket),
          new string[0]);
      }
      catch (Exception e)
      {
        // Decrypt method failed.
      }
    }
  }
  else
  {
    throw new HttpException("Cookieless Forms Authentication is not " +
                            "supported for this application.");
  }
}

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

System.Web.Security-Namespace

Weitere Ressourcen

Formularauthentifizierungsanbieter