Share via


SessionAuthenticationModule Třída

Definice

Implementuje modul ASP.NET, který zpracovává soubory cookie relace ve WS-Federation scénářích.

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
Dědičnost
SessionAuthenticationModule

Příklady

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

Následující kód XML ukazuje, jak nakonfigurovat SAM v kanálu ASP.NET. Mnoho dalších prvků, které jsou přítomny v typické konfiguraci, je zde vynecháno pro stručnost.

<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>  

Poznámky

Pokud se sam nachází v kanálu ASP.NET, SessionAuthenticationModule zpracovává soubory cookie relace ve WS-Federation scénářích. Používá obslužnou rutinu souboru cookie určenou CookieHandler vlastností ke čtení nezpracovaného souboru cookie relace z požadavku HTTP a jeho zápisu do odpovědi HTTP. Používá SessionSecurityTokenHandler objekt nakonfigurovaný pro aplikaci k deserializaci nezpracovaného souboru cookie relace na SessionSecurityToken objekty. Token zabezpečení relace obsahuje deklarace identity (Claim) a objekt zabezpečení (ClaimsPrincipal) přidružené k entitě, pro kterou se požadavek obsluhuje.

Sam přidá obslužnou OnAuthenticateRequest rutinu události do HttpApplication.AuthenticateRequest události v kanálu ASP.NET. Tato obslužná rutina zachytává žádosti o přihlášení, a pokud existuje soubor cookie relace, deserializuje ho do tokenu relace a nastaví Thread.CurrentPrincipal vlastnosti a HttpContext.User na objekt deklarace identity obsažený v tokenu relace. Vyvolá několik dalších metod vystavených sam během tohoto procesu.

Metodu SignOut lze vyvolat k odhlášení uživatele z relace (například v souboru SignOut.aspx.cs kódu na pozadí).

Sam zveřejňuje několik událostí, které poskytují přístup k jeho kanálu zpracování. Události SessionSecurityTokenReceived a SessionSecurityTokenCreated umožňují upravovat tokeny relace, které se čtou ze souborů cookie nebo se vytvářejí během zpracování. Obvykle se to provádí za účelem přidání, odebrání nebo transformace deklarací identity v tokenu nebo kvůli úpravě doby vypršení jeho platnosti. Události SigningOut, SignedOuta SignOutError poskytují informace o zpracování žádostí o odhlášení. V mnoha scénářích stačí pro tyto události jednoduše přidat obslužné rutiny, často do global.asax.cs souboru.

V případě složitějších scénářů můžete odvodit implementaci SessionAuthenticationModule vlastního SAM. Za tímto účelem je mnoho metod, které jsou vyvolány během OnAuthenticateRequest a SignOut jsou zpřístupněny, abyste mohli poskytnout vlastní chování v konkrétních fázích životního cyklu zpracování relace.

Sam můžete přidat do kanálu ASP.NET do konfiguračního souboru tak, že ho přidáte do modulů HTTP buď v elementu <system.webServer> pro službu IIS verze 7 a novější, nebo v rámci elementu <system.web> pro verze starší než IIS 7. Obslužná rutina souboru cookie používaná sam je možné nakonfigurovat pomocí elementu <cookieHandler> .

Konstruktory

SessionAuthenticationModule()

Inicializuje novou instanci SessionAuthenticationModule třídy.

Vlastnosti

ContextSessionSecurityToken

Získá aktivní SessionSecurityToken pro aktuální HttpContext.

CookieHandler

Získá obslužnou rutinu souboru cookie, která se používá ke čtení, zápisu a odstranění souborů cookie relace.

FederationConfiguration

Získá nebo nastaví FederationConfiguration objekt, který je v platnosti pro aktuální modul.

(Zděděno od HttpModuleBase)
IsReferenceMode

Získá nebo nastaví hodnotu, která určuje, zda informace o relaci (hodnoty deklarace identity atd.) mají být uloženy v souboru cookie relace nebo zda má být obsah relace uložen na straně serveru, pomocí souboru cookie k uložení pouze odkaz.

Metody

AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean)

Ověří příchozí požadavek ověřením tokenu příchozí relace. Po úspěšném ověření aktualizuje aktuální kontext HTTP a objekt zabezpečení vlákna zadaným SessionSecurityTokenparametrem .

ContainsSessionTokenCookie(HttpCookieCollection)

Určuje, zda je soubor cookie relace v zadané kolekci souborů cookie.

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

SessionSecurityToken Vytvoří ze zadaných parametrů pomocí konfigurované obslužné rutiny tokenu relace.

DeleteSessionTokenCookie()

Odstraní soubor cookie relace a odebere ho z mezipaměti.

Dispose()

Uvolní prostředky (s výjimkou paměti) používané aktuální instancí HttpModuleBase třídy.

(Zděděno od HttpModuleBase)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
Init(HttpApplication)

Inicializuje modul HTTP.

(Zděděno od HttpModuleBase)
InitializeModule(HttpApplication)

Inicializuje modul a připraví ho na zpracování událostí z ASP.NET objektu aplikace modulu.

InitializePropertiesFromConfiguration()

Inicializuje vlastnosti modulu na základě definic v konfiguračním souboru.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnAuthenticateRequest(Object, EventArgs)

AuthenticateRequest Zpracovává událost z kanálu ASP.NET.

OnPostAuthenticateRequest(Object, EventArgs)

PostAuthenticateRequest Zpracovává událost z kanálu ASP.NET.

OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs)

SessionSecurityTokenCreated Vyvolá událost.

OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs)

SessionSecurityTokenReceived Vyvolá událost.

OnSignedOut(EventArgs)

SignedOut Vyvolá událost.

OnSigningOut(SigningOutEventArgs)

SigningOut Vyvolá událost.

OnSignOutError(ErrorEventArgs)

SignOutError Vyvolá událost.

ReadSessionTokenFromCookie(Byte[])

Načte SessionSecurityToken soubor ze zadaného souboru cookie relace.

SetPrincipalFromSessionToken(SessionSecurityToken)

Nastaví objekt zabezpečení na objektu HttpContext a Thread na objekt zabezpečení, který je obsažen v zadaném tokenu relace.

SignOut()

Odhlásí aktuálního uživatele a vyvolá přidružené události.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TryReadSessionTokenFromCookie(SessionSecurityToken)

Pokusí se přečíst SessionSecurityToken soubor z souboru cookie relace a vrátí hodnotu, která označuje, jestli byl soubor cookie relace úspěšně přečtený.

ValidateSessionToken(SessionSecurityToken)

Ověří zadané SessionSecurityToken a vrátí jeho identity.

WriteSessionTokenToCookie(SessionSecurityToken)

Zapíše zadaný SessionSecurityToken soubor do souboru cookie relace.

Událost

SessionSecurityTokenCreated

Nastane při vytvoření tokenu zabezpečení relace.

SessionSecurityTokenReceived

Nastane, když se token zabezpečení relace načte ze souboru cookie.

SignedOut

Nastane po odhlášení uživatele.

SigningOut

Nastane před odstraněním přihlašovací relace.

SignOutError

Dochází k chybě při odhlášení.

Platí pro