Sdílet prostřednictvím


SessionSecurityTokenHandler Třída

Definice

A SecurityTokenHandler , který zpracovává tokeny zabezpečení typu SessionSecurityToken.

public ref class SessionSecurityTokenHandler : System::IdentityModel::Tokens::SecurityTokenHandler
public class SessionSecurityTokenHandler : System.IdentityModel.Tokens.SecurityTokenHandler
type SessionSecurityTokenHandler = class
    inherit SecurityTokenHandler
Public Class SessionSecurityTokenHandler
Inherits SecurityTokenHandler
Dědičnost
SessionSecurityTokenHandler
Odvozené

Příklady

Následující kód XML ukazuje, jak nahradit výchozí obslužnou rutinu tokenu zabezpečení relace v kolekci obslužné rutiny tokenu MachineKeySessionSecurityTokenHandler za instanci třídy v konfiguraci.

<securityTokenHandlers>
  <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>

Poznámky

Třída SessionSecurityTokenHandler serializuje, deserializuje a ověřuje tokeny relace. Tokeny relace jsou tokeny typu SessionSecurityToken. Třída SessionSecurityTokenHandler serializuje tokeny do a z formátu souboru cookie. Ve výchozím nastavení třída serializuje tokeny do prvků WS-Secure Konverzace únor 2005 nebo WS-Secure Konverzace 1.3 <wsc:SecurityContextToken> . Tokeny relace jsou používány WSFederationAuthenticationModule wsFAM a SessionAuthenticationModule (SAM) k ukládání informací o relaci, což je primárně ClaimsPrincipal přidružené k ověřenému uživateli a časům spuštění a vypršení platnosti relace.

V pasivních scénářích WSFederationAuthenticationModule volání do SessionAuthenticationModule (SAM) z ověřovacího kanálu k vytvoření tokenu relace z objektu ClaimsPrincipal , který představuje ověřeného uživatele. Sam používá nakonfigurovaný SessionSecurityTokenHandler token k vytvoření tokenu a k jeho serializaci do souboru cookie (a k deserializaci tokenu z souboru cookie při následných požadavcích). Sam používá instanci své nakonfigurované CookieHandler třídy k zápisu souboru cookie zpět do odpovědi HTTP. Tento soubor cookie se pak vrátí klientovi a na následných požadavcích může klient soubor cookie prezentovat, místo aby se vrátil zpět ke zprostředkovateli identity, aby znovu získal token zabezpečení. Další informace o tom, jak relace fungují s WIF, najdete v tématu Správa relací WIF.

Poznámka

Element <konfigurace securityTokenHandlers> lze použít k určení objektu SessionSecurityTokenHandler , který má odpovědnost za zabezpečení relací aplikace. Vývojáři by při změně tohoto nastavení konfigurace měli být opatrní, protože chybně nakonfigurovaný systém může způsobit ohrožení zabezpečení aplikace. Například určení odvozené SessionSecurityTokenHandler a předání prázdné Transforms (CookieTransform) kolekce do základu, by vedlo k serializaci identity uživatelů do souboru cookie, který nebyl chráněn. To by mohlo útočníkovi umožnit změnit identitu, a proto změnit přístupová oprávnění.

Pokud je token relace v referenčním režimu, to znamená, že jeho SessionSecurityToken.IsReferenceMode vlastnost je true, obslužná rutina tokenu relace serializuje pouze vlastnosti tokenu relace, které jsou potřebné k opětovnému vygenerování klíče v SessionSecurityTokenCache. Ve výchozím případě SessionSecurityTokenCacheKey se třída používá k reprezentaci klíčů mezipaměti a obslužná rutina tokenu SessionSecurityToken.ContextId zapisuje vlastnosti a SessionSecurityToken.KeyGeneration tokenu. Pokud token relace není v referenčním režimu, to znamená, SessionSecurityToken.IsReferenceMode že vlastnost je false, pak kromě vlastností uvedených výše obslužná rutina vyvolá metodu ApplyTransforms v bajtovém poli serializovaném z tokenu a uloží výslednou hodnotu také do souboru cookie. Další podrobnosti o tom, jak je token serializován, najdete v SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) metodě.

Vlastnost Transforms získá seznam transformací, které jsou použity na token relace v ApplyTransforms metodě. Všechny transformace jsou odvozeny CookieTransform z třídy. Ve výchozím případě se použijí hodnoty DeflateCookieTransform a ProtectedDataCookieTransform . K ProtectedDataCookieTransform ochraně souboru cookie používá rozhraní API pro ochranu dat (DPAPI). Rozhraní DPAPI používá klíč, který je specifický pro počítač, na kterém běží, ve svých algoritmech ochrany. Z tohoto důvodu není výchozí obslužná rutina tokenu relace použitelná ve scénářích webové farmy, protože v takových scénářích může být potřeba číst tokeny zapsané na jednom počítači v jiném počítači. Tento problém můžete obejít mnoha strategiemi. Můžete například:

Další informace o používání relací ve scénářích webové farmy najdete v tématu WiF a webové farmy.

Objekt SessionSecurityTokenHandler je součástí výchozí kolekce obslužné rutiny tokenu. Můžete ji však nahradit obslužnou rutinou tokenu vlastní relace tak, že nejprve zadáte< prvek remove> v elementu <securityTokenHandlers>, který odebere výchozí obslužnou rutinu z kolekce, a pak přidáte vlastní obslužnou rutinu tokenu pomocí elementu< add>. Ve výchozím nastavení můžete určit výchozí životnost tokenu <zahrnutím sessionTokenRequirement> elementu do elementu <add> . Můžete navrhnout vlastní obslužnou rutinu tokenu pro převzetí vlastních konfiguračních prvků v elementu <add> přepsáním LoadCustomConfiguration metody tak, aby poskytla logiku pro jejich zpracování.

Konstruktory

SessionSecurityTokenHandler()

Inicializuje novou instanci SessionSecurityTokenHandler třídy, která používá výchozí transformace souborů cookie a životnost tokenu.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Inicializuje novou instanci SessionSecurityTokenHandler třídy, která používá zadané transformace souborů cookie.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Inicializuje novou instanci SessionSecurityTokenHandler třídy, která používá zadané transformace souborů cookie a životnost tokenu.

Pole

DefaultCookieTransforms

Kolekce jen pro čtení, která obsahuje seznam výchozích transformací, které se mají použít pro soubory cookie, DeflateCookieTransform a ProtectedDataCookieTransform.

DefaultLifetime

Konstanta, která určuje výchozí životnost souborů cookie, deset hodin.

Vlastnosti

CanValidateToken

Získá hodnotu, která označuje, zda tato obslužná rutina podporuje ověření tokenů typu SessionSecurityToken.

CanWriteToken

Získá hodnotu, která označuje, zda tato obslužná rutina může zapisovat tokeny typu SessionSecurityToken.

Configuration

Získá nebo nastaví SecurityTokenHandlerConfiguration objekt, který poskytuje konfiguraci pro aktuální instanci.

(Zděděno od SecurityTokenHandler)
ContainingCollection

Získá kolekci obslužné rutiny tokenu, která obsahuje aktuální instanci.

(Zděděno od SecurityTokenHandler)
CookieElementName

Získá název elementu cookie.

CookieNamespace

Získá obor názvů pro element cookie.

DefaultTokenLifetime

Získá výchozí životnost tokenu.

TokenLifetime

Získá nebo nastaví životnost tokenu.

TokenType

Získá typ tokenů, které tato obslužná rutina zpracovává.

Transforms

Získá transformace, které se použijí na soubor cookie.

Metody

ApplyTransforms(Byte[], Boolean)

Použije transformace určené Transforms vlastností k kódování nebo dekódování zadaného souboru cookie.

CanReadKeyIdentifierClause(XmlReader)

Vrátí hodnotu, která označuje, zda xml element odkazovaný zadaný xml čtenář je key identifikátor klauzule, která může být deserializována touto instancí.

(Zděděno od SecurityTokenHandler)
CanReadToken(String)

Vrátí hodnotu, která označuje, zda zadaný řetězec lze deserializovat jako token typu zpracovaného touto instancí.

(Zděděno od SecurityTokenHandler)
CanReadToken(XmlReader)

Vrátí hodnotu, která označuje, zda je čtečka umístěna v elementu <wsc:SecurityContextToken> .

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Vrátí hodnotu, která označuje, zda zadaná klauzule identifikátoru klíče může být serializována touto instancí.

(Zděděno od SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

Při přepsání v odvozené třídě vytvoří odkaz na tokeny zabezpečení pro tokeny zpracovávané danou třídou. Tuto metodu obvykle volá služba tokenů zabezpečení (STS).

(Zděděno od SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Vytvoří na SessionSecurityToken základě zadaného objektu zabezpečení deklarací identity a časového rozsahu, během kterého je token platný.

CreateToken(SecurityTokenDescriptor)

Vytvoří token zabezpečení na základě zadaného popisovače tokenu.

DetectReplayedToken(SecurityToken)

Při přepsání v odvozené třídě vyvolá výjimku, pokud je zjištěn zadaný token jako přehrávané.

(Zděděno od SecurityTokenHandler)
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)
GetTokenTypeIdentifiers()

Získá identifikátory URI typu tokenu pro typy tokenů, které lze zpracovat touto obslužnou rutinou.

GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
LoadCustomConfiguration(XmlNodeList)

Načte vlastní konfiguraci z XML.

MemberwiseClone()

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

(Zděděno od Object)
ReadKeyIdentifierClause(XmlReader)

Při přepsání v odvozené třídě deserializuje XML odkazované zadaným xml čtenářem na klauzuli identifikátoru klíče, která odkazuje na token zpracovaný odvozenou třídou.

(Zděděno od SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

SessionSecurityToken Načte ze streamu bajtů pomocí zadaného překladače tokenů.

ReadToken(String)

Při přepsání v odvozené třídě deserializuje zadaný řetězec na token typu zpracovaného odvozenou třídou.

(Zděděno od SecurityTokenHandler)
ReadToken(XmlReader)

Čte pomocí zadané čtečky SessionSecurityToken XML.

ReadToken(XmlReader, SecurityTokenResolver)

Čte pomocí zadané čtečky SessionSecurityToken XML a překladače tokenů.

SetTransforms(IEnumerable<CookieTransform>)

Nastaví transformace, které se použijí na soubory cookie.

ToString()

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

(Zděděno od Object)
TraceTokenValidationFailure(SecurityToken, String)

Trasuje událost selhání během ověřování tokenů zabezpečení, pokud je povolené trasování.

(Zděděno od SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Trasuje úspěšné ověření události tokenů zabezpečení při povoleném trasování.

(Zděděno od SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Určuje, zda je relace přidružená k zadanému tokenu stále platná. Platnost se určuje kontrolou ValidFrom vlastností a ValidTo zadaného tokenu. Pokud už relace není platná, vyvolá se výjimka.

ValidateToken(SecurityToken)

Ověří zadaný token a vrátí jeho deklarace identity.

ValidateToken(SessionSecurityToken, String)

Ověří zadaný token relace a vrátí jeho deklarace identity.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Při přepsání v odvozené třídě serializuje zadanou klauzuli identifikátoru klíče na XML. Klauzule identifikátoru klíče musí být typu podporovaného odvozenou třídou.

(Zděděno od SecurityTokenHandler)
WriteToken(SecurityToken)

Při přepsání v odvozené třídě serializuje zadaný token zabezpečení na řetězec. Token musí být typu zpracovaného odvozenou třídou.

(Zděděno od SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Serializuje zadaný token do pole bajtů.

WriteToken(XmlWriter, SecurityToken)

Serializuje zadaný token pomocí zadaného zapisovače XML.

Platí pro

Viz také