Freigeben über


FormsAuthenticationModule-Klasse

Legt die Identität des Benutzers für eine ASP.NET-Anwendung fest, wenn die Formularauthentifizierung aktiviert ist. Diese Klasse kann nicht geerbt werden.

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

Syntax

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

Hinweise

Das FormsAuthenticationModule legt die aktuelle HttpContext.User-Eigenschaft auf ein IPrincipal-Objekt fest, das die Benutzeridentität für die aktuelle Anforderung darstellt, wenn die Authentifizierung Mode im authentication-Element (ASP.NET-Einstellungsschema)-Element der Konfigurationsdatei der Anwendung auf Forms festgelegt ist.

Das FormsAuthenticationModule 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 einer Unterroutine mit dem Namen FormsAuthentication_OnAuthenticate in der Datei Global.asax für die ASP.NET-Anwendung.

Beispiel

Im folgenden Beispiel wird das FormsAuthentication_OnAuthenticate-Ereignis verwendet, um die User-Eigenschaft des aktuellen HttpContext an ein benutzerdefiniertes IPrincipal-Objekt zu binden.

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.");
  }
}

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
  System.Web.Security.FormsAuthenticationModule

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

FormsAuthenticationModule-Member
System.Web.Security-Namespace

Weitere Ressourcen

Formularauthentifizierungsanbieter
Syntax von "Global.asax"