Udostępnij za pośrednictwem


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 to tokeny typu SessionSecurityToken. Klasa SessionSecurityTokenHandler serializuje tokeny do i z formatu pliku cookie. Domyślnie klasa serializuje tokeny do elementów WS-Secure Conversation feb2005 lub WS-Secure Conversation 1.3 <wsc:SecurityContextToken> . Tokeny sesji są używane przez usługę WSFederationAuthenticationModule (WSFAM) i SessionAuthenticationModule (SAM) do przechowywania informacji o sesji, jest to przede wszystkim ClaimsPrincipal skojarzone z uwierzytelniony użytkownik i czas rozpoczęcia i wygaśnięcia sesji.

W scenariuszach WSFederationAuthenticationModule pasywnych wywołania do SessionAuthenticationModule potoku 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 deserializacji 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 po 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 / Notatka

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 SessionSecurityTokenCachewygenerowania klucza w obiekcie . W domyślnym przypadku SessionSecurityTokenCacheKey klasa jest używana do reprezentowania kluczy pamięci podręcznej, a program 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, a następnie, oprócz właściwości wymienionych wcześniej, program obsługi wywołuje ApplyTransforms metodę w tablicy bajtów serializowanej z tokenu i przechowuje wynikową wartość w pliku cookie, jak również. Aby uzyskać więcej informacji na temat 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 DeflateCookieTransform są stosowane wartości i ProtectedDataCookieTransform . Program ProtectedDataCookieTransform używa interfejsu API ochrony danych (DPAPI) do ochrony materiału cookie. DpAPI używa klucza specyficznego dla komputera, na którym działa w algorytmach ochrony. Z tego powodu program obsługi tokenu sesji domyślnej nie może być używany w scenariuszach farmy sieci Web, ponieważ w takich scenariuszach tokeny zapisane na jednym komputerze mogą być odczytywane 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, włączając <element sessionTokenRequirement> w elemecie <add> . Możesz zaprojektować niestandardową procedurę obsługi tokenów, aby pobrać niestandardowe elementy konfiguracji w ramach <add> elementu, przesłaniając LoadCustomConfiguration metodę w celu zapewnienia logiki do ich przetwarzania.

Konstruktory

Nazwa Opis
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>, TimeSpan)

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

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

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

Pola

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

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

Nazwa Opis
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 być deserializowana 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 tą klasę. Ta metoda jest zwykle wywoływana przez usługę tokenu zabezpieczającego (STS).

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

Tworzy obiekt SessionSecurityToken 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 przesłonięciu w klasie pochodnej zgłasza wyjątek, jeśli określony token zostanie wykryty jako odtwarzany.

(Odziedziczone po SecurityTokenHandler)
Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

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

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
LoadCustomConfiguration(XmlNodeList)

Ładuje konfigurację niestandardową z pliku XML.

MemberwiseClone()

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

(Odziedziczone po Object)
ReadKeyIdentifierClause(XmlReader)

Po zastąpieniu w klasie pochodnej deserializuje kod XML przywoływane przez 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, SecurityTokenResolver)

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

ReadToken(XmlReader)

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

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. Wyjątek jest zgłaszany, jeśli sesja nie jest już prawidłowa.

ValidateToken(SecurityToken)

Weryfikuje określony token i zwraca swoje oświadczenia.

ValidateToken(SessionSecurityToken, String)

Weryfikuje określony token 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ż