SessionAuthenticationModule Klasse

Definition

Implementiert ein ASP.NET-Modul, das Sitzungscookies in den WS-Federation-Szenarien verarbeitet.Implements an ASP.NET module that processes session cookies in WS-Federation scenarios.

public ref class SessionAuthenticationModule : System::IdentityModel::Services::HttpModuleBase
public class SessionAuthenticationModule : System.IdentityModel.Services.HttpModuleBase
type SessionAuthenticationModule = class
    inherit HttpModuleBase
Public Class SessionAuthenticationModule
Inherits HttpModuleBase
Vererbung
SessionAuthenticationModule

Beispiele

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup

    //SUBSCRIBE TO SAM EVENTS
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenCreated += new EventHandler<SessionSecurityTokenCreatedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenCreated);
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenReceived += new EventHandler<SessionSecurityTokenReceivedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenReceived);
    FederatedAuthentication.SessionAuthenticationModule.SigningOut += new EventHandler<SigningOutEventArgs>(SessionAuthenticationModule_SigningOut);
    FederatedAuthentication.SessionAuthenticationModule.SignedOut += new EventHandler(SessionAuthenticationModule_SignedOut);
    FederatedAuthentication.SessionAuthenticationModule.SignOutError += new EventHandler<ErrorEventArgs>(SessionAuthenticationModule_SignOutError);
}
void SessionAuthenticationModule_SignOutError(object sender, ErrorEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SignOutError event");
}

void SessionAuthenticationModule_SignedOut(object sender, EventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SignedOut event");
}

void SessionAuthenticationModule_SigningOut(object sender, SigningOutEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SigningOut event");
}

void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenReceived event");
}

void SessionAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenCreated event");
    //Store session on the server-side token cache instead writing the whole token to the cookie.
    //It may improve throughput but introduces server affinity that may affect scalability
    FederatedAuthentication.SessionAuthenticationModule.IsReferenceMode = true;
}

Der folgende XML-Code zeigt, wie Sie Sam in der ASP.NET-Pipeline konfigurieren.The following XML shows how to configure the SAM in the ASP.NET pipeline. Viele andere Elemente, die in einer typischen Konfiguration vorhanden sind, werden aus Gründen der Kürze ausgelassen.Many other elements that are present in a typical configuration are omitted here for brevity.

<configuration>  
  <system.webServer>  
    <modules>  
      <!--WIF 4.5 modules -->  
      <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>  
      <add name="WsFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>  
    </modules>  
  </system.webServer>  
</configuration>  

Hinweise

Wenn Sie in der ASP.NET-Pipeline vorhanden ist, verarbeitet die SessionAuthenticationModule (Sam) Sitzungs Cookies in WS-Verbund-Szenarios.When present in the ASP.NET pipeline, the SessionAuthenticationModule (SAM) processes session cookies in WS-Federation scenarios. Er verwendet den von der CookieHandler-Eigenschaft angegebenen Cookie-Handler, um das unformatierte Sitzungs Cookie aus der HTTP-Anforderung zu lesen und in die HTTP-Antwort zu schreiben.It uses the cookie handler specified by the CookieHandler property to read the raw session cookie from the HTTP request and write it to the HTTP response. Er verwendet die SessionSecurityTokenHandler, die für eine Anwendung konfiguriert ist, um das unformatierte Sitzungs Cookie in SessionSecurityToken Objekte zu deserialisieren.It uses the SessionSecurityTokenHandler that is configured for an application to deserialize the raw session cookie into SessionSecurityToken objects. Das Sitzungs Sicherheits Token enthält die Ansprüche (Claim) und den Prinzipal (ClaimsPrincipal), die der Entität zugeordnet sind, für die die Anforderung verarbeitet wird.The session security token contains the claims (Claim) and principal (ClaimsPrincipal) associated with the entity for which the request is being served.

Sam fügt dem HttpApplication.AuthenticateRequest-Ereignis in der ASP.NET-Pipeline den OnAuthenticateRequest Ereignishandler hinzu.The SAM adds its OnAuthenticateRequest event handler to the HttpApplication.AuthenticateRequest event in the ASP.NET pipeline. Dieser Handler fängt Anmelde Anforderungen ab, und wenn ein Sitzungs Cookie vorhanden ist, wird er in ein Sitzungs Token deserialisiert, und die Eigenschaften Thread.CurrentPrincipal und HttpContext.User werden auf den Anspruchs Prinzipal festgelegt, der im Sitzungs Token enthalten ist.This handler intercepts sign-in requests, and, if there is a session cookie, deserializes it into a session token, and sets the Thread.CurrentPrincipal and HttpContext.User properties to the claims principal contained in the session token. Es werden mehrere der anderen Methoden aufgerufen, die während dieses Prozesses von Sam verfügbar gemacht werden.It invokes several of the other methods exposed by the SAM during this process.

Die SignOut-Methode kann aufgerufen werden, um den Benutzer von einer Sitzung zu signieren (z. b. in einer SignOut.aspx.cs-Code Behind-Datei).The SignOut method can be invoked to sign the user out of a session (for example, in a SignOut.aspx.cs code-behind file).

Sam macht mehrere Ereignisse verfügbar, die Zugriff auf seine Verarbeitungs Pipeline ermöglichen.The SAM exposes several events that provide access to its processing pipeline. Mit den SessionSecurityTokenReceived-und SessionSecurityTokenCreated Ereignissen können Sie Sitzungs Token ändern, die aus Cookies gelesen oder während der Verarbeitung erstellt werden.The SessionSecurityTokenReceived and SessionSecurityTokenCreated events enable you to modify session tokens that are read from cookies or created during processing. Dies erfolgt in der Regel, um Ansprüche im Token hinzuzufügen, zu entfernen oder zu transformieren oder um deren Ablaufzeit anzupassen.Typically, this is done to add, remove, or transform claims in the token or to adjust its expiration time. Die SigningOut-, SignedOut-und SignOutError-Ereignisse stellen Hooks für die Verarbeitung von Abmelde Anforderungen bereit.The SigningOut, SignedOut, and SignOutError events provide hooks into the processing of sign-out requests. In vielen Szenarien ist das einfache Hinzufügen von Handlern für diese Ereignisse, häufig in der Global.asax.cs-Datei, ausreichend.For many scenarios, simply adding handlers for these events, often to the global.asax.cs file, will be sufficient.

Für kompliziertere Szenarien können Sie von SessionAuthenticationModule ableiten, um ein benutzerdefiniertes Sam zu implementieren.For more complicated scenarios, you can derive from SessionAuthenticationModule to implement a custom SAM. Zu diesem Zweck werden viele der Methoden, die während OnAuthenticateRequest und SignOut aufgerufen werden, verfügbar gemacht, sodass Sie benutzerdefiniertes Verhalten in bestimmten Phasen des Lebenszyklus der Sitzungs Verarbeitung bereitstellen können.To this end, many of the methods that are invoked during OnAuthenticateRequest and SignOut are exposed so that you can provide custom behavior at specific stages of the session processing lifecycle.

Sie können Sam der ASP.NET-Pipeline in einer Konfigurationsdatei hinzufügen, indem Sie Sie den HTTP-Modulen unter dem <system.webServer>-Element für IIS Version 7 und höher oder unter dem <system.web>-Element für Versionen vor IIS 7 hinzufügen.You can add the SAM to the ASP.NET pipeline in a configuration file by adding it to the HTTP modules under either the <system.webServer> element for IIS version 7 and later or under the <system.web> element for versions prior to IIS 7. Der von Sam verwendete cookiehandler kann mit dem <cookiehandler-> Element konfiguriert werden.The cookie handler used by the SAM can be configured with the <cookieHandler> element.

Konstruktoren

SessionAuthenticationModule()

Initialisiert eine neue Instanz der Klasse SessionAuthenticationModule.Initializes a new instance of the SessionAuthenticationModule class.

Eigenschaften

ContextSessionSecurityToken

Ruft das aktive SessionSecurityToken für den aktuellen HttpContext.Gets the active SessionSecurityToken for the current HttpContext.

CookieHandler

Ruft den Cookie Handler ab, der verwendet wird, um Sitzungscookies zu lesen, zu schreiben und zu löschen.Gets the cookie handler that is used to read, write, and delete session cookies.

FederationConfiguration

Ruft das FederationConfiguration-Objekt ab, das für das aktuelle Modul gilt, oder legt dieses fest.Gets or sets the FederationConfiguration object that is in effect for the current module.

(Geerbt von HttpModuleBase)
IsReferenceMode

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Sitzungsinformationen (Anspruchswerte usw.) im Sitzungscookie gespeichert werden sollen oder ob der Sitzungsinhalt auf der Serverseite über das Cookie als Referenz gespeichert werden soll.Gets or sets a value that specifies whether the session information (claim values, etc.) should be stored in the session cookie or whether the session content should be stored on the server side, using the cookie to store just a reference.

Methoden

AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean)

Authentifiziert die eingehende Anforderung durch Überprüfen des eingehenden Sitzungstokens.Authenticates the incoming request by validating the incoming session token. Nach erfolgreicher Validierung wird der aktuelle HTTP-Kontext und der Prinzipal des Threads mit dem angegebenen SessionSecurityToken aktualisiert.Upon successful validation, it updates the current HTTP context and thread principal with the specified SessionSecurityToken.

ContainsSessionTokenCookie(HttpCookieCollection)

Bestimmt, ob ein Sitzungscookie an der angegebenen Cookieauflistung ist.Determines whether a session cookie is in the specified cookie collection.

CreateSessionSecurityToken(ClaimsPrincipal, String, DateTime, DateTime, Boolean)

Erstellt ein SessionSecurityToken aus den angegebenen Parametern mithilfe des konfigurierten Sitzungentokenhandlers.Creates a SessionSecurityToken from the specified parameters by using the configured session token handler.

DeleteSessionTokenCookie()

Löscht das Sitzungscookie und entfernt es aus dem Cache.Deletes the session cookie and removes it from the cache.

Dispose()

Gibt die von der aktuellen Instanz der HttpModuleBase-Klasse verwendeten Ressourcen (außer Speicher)frei.Releases the resources (except memory) used by the current instance of the HttpModuleBase class.

(Geerbt von HttpModuleBase)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
Init(HttpApplication)

Initialisiert das HTTP-Modul.Initializes the HTTP module.

(Geerbt von HttpModuleBase)
InitializeModule(HttpApplication)

Initialisiert das Modul und bereitet es auf die Verarbeitung von Ereignissen des ASP.NETASP.NET-Anwendungsobjekts des Moduls vor.Initializes the module and prepares it to handle events from the module's ASP.NETASP.NET application object.

InitializePropertiesFromConfiguration()

Initialisiert die Moduleigenschaften auf Grundlage von Definitionen in der Konfigurationsdatei.Initializes the module properties based on definitions in the configuration file.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
OnAuthenticateRequest(Object, EventArgs)

Behandelt das AuthenticateRequest-Ereignis aus der ASP.NETASP.NET Pipeline.Handles the AuthenticateRequest event from the ASP.NETASP.NET pipeline.

OnPostAuthenticateRequest(Object, EventArgs)

Behandelt das PostAuthenticateRequest-Ereignis aus der ASP.NETASP.NET Pipeline.Handles the PostAuthenticateRequest event from the ASP.NETASP.NET pipeline.

OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs)

Löst das SessionSecurityTokenCreated-Ereignis aus.Raises the SessionSecurityTokenCreated event.

OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs)

Löst das SessionSecurityTokenReceived-Ereignis aus.Raises the SessionSecurityTokenReceived event.

OnSignedOut(EventArgs)

Löst das SignedOut-Ereignis aus.Raises the SignedOut event.

OnSigningOut(SigningOutEventArgs)

Löst das SigningOut-Ereignis aus.Raises the SigningOut event.

OnSignOutError(ErrorEventArgs)

Löst das SignOutError-Ereignis aus.Raises the SignOutError event.

ReadSessionTokenFromCookie(Byte[])

Liest ein SessionSecurityToken aus dem angegebenen Sitzungscookie.Reads a SessionSecurityToken from the specified session cookie.

SetPrincipalFromSessionToken(SessionSecurityToken)

Legt den Prinzipal im HttpContext und Thread auf den Prinzipal fest, der im angegebenen Sitzungstoken enthalten ist.Sets the principal on the HttpContext and Thread to the principal that is contained in the specified session token.

SignOut()

Meldet den aktuellen Benutzer ab und löst die entsprechenden Ereignisse aus.Signs the current user out and raises the associated events.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
TryReadSessionTokenFromCookie(SessionSecurityToken)

Versucht, ein SessionSecurityToken aus einem Sitzungscookie zu lesen und gibt einen Wert zurück, der angibt, ob das Sitzungscookie erfolgreich gelesen wurde.Attempts to read a SessionSecurityToken from a session cookie and returns a value that indicates whether the session cookie was successfully read.

ValidateSessionToken(SessionSecurityToken)

Überprüft das angegebene SessionSecurityToken und gibt seine Identität zurück.Validates the specified SessionSecurityToken and returns its identities.

WriteSessionTokenToCookie(SessionSecurityToken)

Schreibt das angegebene SessionSecurityToken in ein Sitzungscookie.Writes the specified SessionSecurityToken to a session cookie.

Ereignisse

SessionSecurityTokenCreated

Tritt ein, wenn ein Sitzungssicherheitstoken erstellt wurde.Occurs when a session security token has been created.

SessionSecurityTokenReceived

Tritt ein, wenn ein Sitzungssicherheitstoken von einem Cookie gelesen wurde.Occurs when a session security token has been read from a cookie.

SignedOut

Tritt auf, nachdem der Benutzer abgemeldet ist.Occurs after the user is signed out.

SigningOut

Tritt vor dem Löschen der Anmeldung auf.Occurs before deleting the sign-in session.

SignOutError

Tritt ein, wenn ein Fehler während der Abmeldung auftritt.Occurs when there is an error during sign-out.

Gilt für: