SessionSecurityTokenHandler Klasa

Definicja

Element SecurityTokenHandler , który przetwarza tokeny zabezpieczające 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
Dziedziczenie
SessionSecurityTokenHandler
Pochodne

Przykłady

Poniższy kod XML pokazuje, jak zastąpić domyślną procedurę obsługi tokenów zabezpieczających sesji w kolekcji programu obsługi tokenów MachineKeySessionSecurityTokenHandler wystąpieniem klasy w konfiguracji.

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

Uwagi

Klasa SessionSecurityTokenHandler serializuje, deserializuje i weryfikuje tokeny sesji. Tokeny sesji są tokenami typu SessionSecurityToken. Klasa SessionSecurityTokenHandler serializuje tokeny do i z formatu pliku cookie. Domyślnie klasa serializuje tokeny w WS-Secure Conversation Feb2005 lub WS-Secure Conversation 1.3 <wsc:SecurityContextToken> elementów. Tokeny sesji są używane przez WSFederationAuthenticationModule (WSFAM) i SessionAuthenticationModule (SAM) do przechowywania informacji o sesji, jest to przede wszystkim ClaimsPrincipal skojarzone z uwierzytelnionego użytkownika oraz czas rozpoczęcia i wygaśnięcia sesji.

W scenariuszach WSFederationAuthenticationModule pasywnych wywołania do potoku SessionAuthenticationModule uwierzytelniania (SAM) w celu utworzenia tokenu sesji z ClaimsPrincipal elementu reprezentującego uwierzytelnionego użytkownika. Protokół SAM używa skonfigurowanego SessionSecurityTokenHandler do utworzenia tokenu i serializacji go do pliku cookie (i deserializowania tokenu z pliku cookie w kolejnych żądaniach). Sam używa wystąpienia swojej skonfigurowanej CookieHandler klasy do zapisania pliku cookie z powrotem do odpowiedzi HTTP. Ten plik cookie jest następnie zwracany do klienta, a następnie na kolejnych żądaniach klient może przedstawić plik cookie, a nie wrócić do dostawcy tożsamości w celu ponownego uzyskania tokenu zabezpieczającego. Aby uzyskać więcej informacji na temat sposobu działania sesji z programem WIF, zobacz Zarządzanie sesjami programu WIF.

Uwaga

Element <konfiguracji securityTokenHandlers> może służyć do określenia elementu SessionSecurityTokenHandler , który ma odpowiedzialność za zabezpieczanie sesji aplikacji. Deweloperzy powinni zachować ostrożność podczas zmieniania tego ustawienia konfiguracji, ponieważ nieprawidłowo skonfigurowany system może spowodować naruszenie zabezpieczeń aplikacji. Na przykład określenie pochodnej SessionSecurityTokenHandler i przekazanie pustej kolekcji Transforms (CookieTransform) do bazy spowoduje serializacji tożsamości użytkowników do pliku cookie, który nie był chroniony. Może to umożliwić osobie atakującej zmodyfikowanie tożsamości i zmianę uprawnień dostępu.

Jeśli token sesji jest w trybie odwołania, oznacza to, że jego SessionSecurityToken.IsReferenceMode właściwością jest true, procedura obsługi tokenu sesji serializuje tylko właściwości tokenu sesji, które są potrzebne do ponownego wygenerowania klucza w SessionSecurityTokenCacheobiekcie . W domyślnym przypadku SessionSecurityTokenCacheKey klasa jest używana do reprezentowania kluczy pamięci podręcznej, a procedura obsługi tokenów zapisuje SessionSecurityToken.ContextId właściwości i SessionSecurityToken.KeyGeneration tokenu. Jeśli token sesji nie jest w trybie odwołania, oznacza to, SessionSecurityToken.IsReferenceMode że właściwość to false, oprócz właściwości wymienionych wcześniej program obsługi wywołuje ApplyTransforms metodę na tablicy bajtów serializowanej z tokenu i przechowuje wynikową wartość w pliku cookie. Aby uzyskać więcej informacji o sposobie serializacji tokenu, zobacz metodę SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) .

Właściwość Transforms pobiera listę przekształceń, które są stosowane do tokenu sesji w metodzie ApplyTransforms . Wszystkie przekształcenia pochodzą z CookieTransform klasy . W domyślnym przypadku są stosowane wartości DeflateCookieTransform i ProtectedDataCookieTransform . Program ProtectedDataCookieTransform używa interfejsu API ochrony danych (DPAPI) do ochrony materiału cookie. Interfejs DPAPI używa klucza specyficznego dla komputera, na którym działa w algorytmach ochrony. Z tego powodu domyślna procedura obsługi tokenów sesji nie może być użyteczna w scenariuszach farmy sieci Web, ponieważ w takich scenariuszach tokeny zapisane na jednym komputerze mogą wymagać odczytu na innym komputerze. Aby obejść ten problem, można użyć wielu strategii. Możesz na przykład:

Aby uzyskać więcej informacji na temat używania sesji w scenariuszach farmy sieci Web, zobacz WIF i Web Farms.

Element SessionSecurityTokenHandler jest uwzględniony w domyślnej kolekcji obsługi tokenów. Można jednak zastąpić ją niestandardową procedurą obsługi tokenów sesji, określając <najpierw element remove> w elemencie securityTokenHandlers, aby usunąć domyślną procedurę obsługi z kolekcji, a następnie dodać niestandardową procedurę obsługi tokenów przy użyciu< elementu add>.>< Domyślnie można określić domyślny okres istnienia tokenu, uwzględniając <element sessionTokenRequirement> w elemecie <add> . Możesz zaprojektować niestandardową procedurę obsługi tokenów, aby pobrać niestandardowe elementy konfiguracji w <add> ramach elementu, przesłaniając metodę LoadCustomConfiguration w celu zapewnienia logiki do ich przetwarzania.

Konstruktory

SessionSecurityTokenHandler()

Inicjuje SessionSecurityTokenHandler nowe wystąpienie klasy, które używa domyślnych przekształceń plików cookie i okresu istnienia tokenu.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Inicjuje SessionSecurityTokenHandler nowe wystąpienie klasy, które używa określonych przekształceń plików cookie.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Inicjuje SessionSecurityTokenHandler nowe wystąpienie klasy, które używa określonych przekształceń plików cookie i okresu istnienia tokenu.

Pola

DefaultCookieTransforms

Kolekcja tylko do odczytu zawierająca listę domyślnych przekształceń, które mają być stosowane do plików cookie, i DeflateCookieTransformProtectedDataCookieTransform.

DefaultLifetime

Stała określająca domyślny okres istnienia plików cookie, dziesięć godzin.

Właściwości

CanValidateToken

Pobiera wartość wskazującą, czy ta procedura obsługi obsługuje walidację tokenów typu SessionSecurityToken.

CanWriteToken

Pobiera wartość wskazującą, czy ta procedura obsługi może zapisywać tokeny typu SessionSecurityToken.

Configuration

Pobiera lub ustawia SecurityTokenHandlerConfiguration obiekt, który zapewnia konfigurację dla bieżącego wystąpienia.

(Odziedziczone po SecurityTokenHandler)
ContainingCollection

Pobiera kolekcję programu obsługi tokenów zawierającą bieżące wystąpienie.

(Odziedziczone po SecurityTokenHandler)
CookieElementName

Pobiera nazwę elementu cookie.

CookieNamespace

Pobiera przestrzeń nazw elementu cookie.

DefaultTokenLifetime

Pobiera domyślny okres istnienia tokenu.

TokenLifetime

Pobiera lub ustawia okres istnienia tokenu.

TokenType

Pobiera typ tokenów, które przetwarza ten program obsługi.

Transforms

Pobiera przekształcenia, które zostaną zastosowane do pliku cookie.

Metody

ApplyTransforms(Byte[], Boolean)

Stosuje przekształcenia określone przez Transforms właściwość do kodowania lub dekodowania określonego pliku cookie.

CanReadKeyIdentifierClause(XmlReader)

Zwraca wartość wskazującą, czy element XML, do którego odwołuje się określony czytnik XML, jest klauzulą identyfikatora klucza, która może zostać zdeserializowana przez to wystąpienie.

(Odziedziczone po SecurityTokenHandler)
CanReadToken(String)

Zwraca wartość wskazującą, czy określony ciąg może zostać zdeserializowany jako token typu przetworzonego przez to wystąpienie.

(Odziedziczone po SecurityTokenHandler)
CanReadToken(XmlReader)

Zwraca wartość wskazującą, czy czytnik jest umieszczony w elemecie <wsc:SecurityContextToken> .

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Zwraca wartość wskazującą, czy określona klauzula identyfikatora klucza może być serializowana przez to wystąpienie.

(Odziedziczone po SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

Po zastąpieniu w klasie pochodnej tworzy odwołanie do tokenu zabezpieczającego dla tokenów przetworzonych przez klasę. Ta metoda jest zwykle wywoływana przez usługę tokenu zabezpieczającego (STS).

(Odziedziczone po SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

SessionSecurityToken Tworzy obiekt na podstawie określonego zakresu oświadczeń podmiotu zabezpieczeń i czasu, w którym token jest prawidłowy.

CreateToken(SecurityTokenDescriptor)

Tworzy token zabezpieczający na podstawie określonego deskryptora tokenu.

DetectReplayedToken(SecurityToken)

Po zastąpieniu w klasie pochodnej zgłasza wyjątek, jeśli określony token zostanie wykryty jako odtwarzany.

(Odziedziczone po SecurityTokenHandler)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetTokenTypeIdentifiers()

Pobiera identyfikatory URI typu tokenu dla typów tokenów, które mogą być przetwarzane przez tę procedurę obsługi.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
LoadCustomConfiguration(XmlNodeList)

Ładuje konfigurację niestandardową z pliku XML.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ReadKeyIdentifierClause(XmlReader)

Po przesłonięciu w klasie pochodnej deserializuje kod XML, do którego odwołuje się określony czytnik XML, do klauzuli identyfikatora klucza, która odwołuje się do tokenu przetworzonego przez klasę pochodną.

(Odziedziczone po SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

Odczytuje element SessionSecurityToken ze strumienia bajtów przy użyciu określonego modułu rozpoznawania tokenów.

ReadToken(String)

Po zastąpieniu w klasie pochodnej deserializuje określony ciąg do tokenu typu przetworzonego przez klasę pochodną.

(Odziedziczone po SecurityTokenHandler)
ReadToken(XmlReader)

Odczytuje element SessionSecurityToken przy użyciu określonego czytnika XML.

ReadToken(XmlReader, SecurityTokenResolver)

Odczytuje SessionSecurityToken element przy użyciu określonego czytnika XML i modułu rozpoznawania tokenów.

SetTransforms(IEnumerable<CookieTransform>)

Ustawia przekształcenia, które zostaną zastosowane do plików cookie.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TraceTokenValidationFailure(SecurityToken, String)

Śledzi zdarzenie niepowodzenia podczas walidacji tokenów zabezpieczających po włączeniu śledzenia.

(Odziedziczone po SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Śledzi pomyślne sprawdzanie poprawności zdarzenia tokenów zabezpieczających po włączeniu śledzenia.

(Odziedziczone po SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Określa, czy sesja skojarzona z określonym tokenem jest nadal prawidłowa. Ważność jest określana przez sprawdzenie ValidFrom właściwości i ValidTo określonego tokenu. Jeśli sesja nie jest już prawidłowa, zgłaszany jest wyjątek.

ValidateToken(SecurityToken)

Sprawdza poprawność określonego tokenu i zwraca jego oświadczenia.

ValidateToken(SessionSecurityToken, String)

Sprawdza poprawność określonego tokenu sesji i zwraca swoje oświadczenia.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Po zastąpieniu w klasie pochodnej serializuje określoną klauzulę identyfikatora klucza do xml. Klauzula identyfikatora klucza musi być typu obsługiwanego przez klasę pochodną.

(Odziedziczone po SecurityTokenHandler)
WriteToken(SecurityToken)

Po zastąpieniu w klasie pochodnej serializuje określony token zabezpieczający do ciągu. Token musi być typu przetwarzanego przez klasę pochodną.

(Odziedziczone po SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Serializuje określony token do tablicy bajtów.

WriteToken(XmlWriter, SecurityToken)

Serializuje określony token przy użyciu określonego modułu zapisywania XML.

Dotyczy

Zobacz też