Freigeben über


SessionSecurityTokenHandler Klasse

Definition

Ein SecurityTokenHandler , der Sicherheitstoken vom Typ SessionSecurityTokenverarbeitet.

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
Vererbung
SessionSecurityTokenHandler
Abgeleitet

Beispiele

Der folgende XML-Code zeigt, wie der Standardmäßige Sitzungssicherheitstokenhandler in einer Tokenhandlersammlung durch eine Instanz der Klasse in der MachineKeySessionSecurityTokenHandler Konfiguration ersetzt wird.

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

Hinweise

Die SessionSecurityTokenHandler Klasse serialisiert, deserialisiert und überprüft Sitzungstoken. Sitzungstoken sind Token vom Typ SessionSecurityToken. Die SessionSecurityTokenHandler Klasse serialisiert die Token in und aus dem Cookie-Format. Standardmäßig serialisiert die Klasse Token in WS-Secure Conversation Feb2005- oder WS-Secure Conversation 1.3-Elemente <wsc:SecurityContextToken> . Sitzungstoken werden von der WSFederationAuthenticationModule (WSFAM) und dem SessionAuthenticationModule (SAM) zum Speichern von Informationen zu einer Sitzung verwendet, dies ist in erster Linie dem ClaimsPrincipal authentifizierten Benutzer und den Start- und Ablaufzeiten der Sitzung zugeordnet.

In passiven Szenarien werden die WSFederationAuthenticationModule Aufrufe von der Authentifizierungspipeline zum Erstellen eines Sitzungstokens aus dem, der ClaimsPrincipal den authentifizierten Benutzer darstellt, aufgerufen SessionAuthenticationModule . Das SAM verwendet seine Konfiguration SessionSecurityTokenHandler , um das Token zu erstellen und in ein Cookie zu serialisieren (und um das Token von einem Cookie bei nachfolgenden Anforderungen zu deserialisieren). Das SAM verwendet eine Instanz der konfigurierten CookieHandler Klasse, um das Cookie wieder in die HTTP-Antwort zu schreiben. Dieses Cookie wird dann an den Client zurückgegeben, und bei nachfolgenden Anforderungen kann der Client das Cookie präsentieren, anstatt einen Roundtrip zum Identitätsanbieter vorzunehmen, um ein Sicherheitstoken erneut zu erhalten. Weitere Informationen zur Funktionsweise von Sitzungen mit WIF finden Sie unter WIF Session Management.

Hinweis

Das <SecurityTokenHandlers-Konfigurationselement> kann verwendet werden, um ein SessionSecurityTokenHandler Element anzugeben, das für die Sicherung der Anwendungssitzungen verantwortlich ist. Entwickler sollten beim Ändern dieser Konfigurationseinstellung Vorsicht walten lassen, da ein falsch konfiguriertes System zu einer Anwendungskompromittierung führen kann. Wenn Sie z. B. eine abgeleitete SessionSecurityTokenHandler und leere Transforms (CookieTransform)-Auflistung an die Basis übergeben, würde die Benutzeridentität in ein nicht geschütztes Cookie serialisiert. Dies könnte es einem Angreifer ermöglichen, die Identität zu ändern und somit Zugriffsberechtigungen zu ändern.

Wenn sich das Sitzungstoken im Referenzmodus befindet, d. h. seine SessionSecurityToken.IsReferenceMode Eigenschaft lautet true, serialisiert der Sitzungstokenhandler nur Die Eigenschaften des Sitzungstokens, die zum Generieren des Schlüssels in der SessionSecurityTokenCache. Im Standardfall wird die SessionSecurityTokenCacheKey Klasse verwendet, um Cacheschlüssel darzustellen, und der Tokenhandler schreibt die SessionSecurityToken.ContextId und SessionSecurityToken.KeyGeneration die Eigenschaften des Tokens. Wenn sich das Sitzungstoken nicht im Referenzmodus befindet, d. h. die SessionSecurityToken.IsReferenceMode Eigenschaft ist false, dann ruft der Handler zusätzlich zu den zuvor erwähnten Eigenschaften die ApplyTransforms Methode für ein bytearray auf, das vom Token serialisiert wurde, und speichert den resultierenden Wert auch im Cookie. Weitere Informationen dazu, wie das Token serialisiert wird, finden Sie in der SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) Methode.

Die Transforms Eigenschaft ruft die Liste der Transformationen ab, die auf das Sitzungstoken in der ApplyTransforms Methode angewendet werden. Alle Transformationen werden von der CookieTransform Klasse abgeleitet. Im Standardfall werden die DeflateCookieTransform und die ProtectedDataCookieTransform angewendet. Die ProtectedDataCookieTransform Datenschutzrichtlinie (Data Protection API, DPAPI) verwendet, um das Cookie-Material zu schützen. DPAPI verwendet einen für den Computer spezifischen Schlüssel, auf dem er in seinen Schutzalgorithmen ausgeführt wird. Aus diesem Grund ist der Standardsitzungstokenhandler in Webfarmszenarien nicht verwendbar, da in solchen Szenarien Token, die auf einem Computer geschrieben wurden, möglicherweise auf einem anderen Computer gelesen werden müssen. Sie können viele Strategien verwenden, um dieses Problem zu umgehen. So können Sie beispielsweise Folgendes ausführen:

Weitere Informationen zur Verwendung von Sitzungen in Webfarmszenarien finden Sie unter WIF und Webfarmen.

Dies SessionSecurityTokenHandler ist in der Standardmäßigen Tokenhandlersammlung enthalten. Sie können sie jedoch durch einen benutzerdefinierten Sitzungstokenhandler ersetzen, indem Sie zuerst ein <Remove-Element> unter dem <SecurityTokenHandlers-Element> angeben, um den Standardhandler aus der Auflistung zu entfernen und dann ihren benutzerdefinierten Tokenhandler mithilfe des <Add-Elements hinzuzufügen> . Standardmäßig können Sie die Standardtokenlebensdauer angeben, indem Sie das <sessionTokenRequirement-Element> unter das <add> Element einschließen. Sie können einen benutzerdefinierten Tokenhandler entwerfen, um benutzerdefinierte Konfigurationselemente unter dem <add> Element zu übernehmen, indem Sie die Methode außer Kraft setzen, um die LoadCustomConfiguration Logik für die Verarbeitung bereitzustellen.

Konstruktoren

Name Beschreibung
SessionSecurityTokenHandler()

Initialisiert eine neue Instanz der SessionSecurityTokenHandler Klasse, die die standardmäßigen Cookietransformationen und die Tokenlebensdauer verwendet.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Initialisiert eine neue Instanz der SessionSecurityTokenHandler Klasse, die die angegebenen Cookietransformationen und die Tokenlebensdauer verwendet.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Initialisiert eine neue Instanz der SessionSecurityTokenHandler Klasse, die die angegebenen Cookietransformationen verwendet.

Felder

Name Beschreibung
DefaultCookieTransforms

Eine schreibgeschützte Sammlung, die die Liste der Standardtransformationen enthält, die auf Cookies, die DeflateCookieTransform und die ProtectedDataCookieTransform.

DefaultLifetime

Eine Konstante, die die Standardlebensdauer für Cookies angibt, zehn Stunden.

Eigenschaften

Name Beschreibung
CanValidateToken

Ruft einen Wert ab, der angibt, ob dieser Handler die Überprüfung von Token vom Typ SessionSecurityTokenunterstützt.

CanWriteToken

Ruft einen Wert ab, der angibt, ob dieser Handler Token vom Typ SessionSecurityTokenschreiben kann.

Configuration

Dient zum Abrufen oder Festlegen des SecurityTokenHandlerConfiguration Objekts, das die Konfiguration für die aktuelle Instanz bereitstellt.

(Geerbt von SecurityTokenHandler)
ContainingCollection

Ruft die Tokenhandlerauflistung ab, die die aktuelle Instanz enthält.

(Geerbt von SecurityTokenHandler)
CookieElementName

Ruft den Namen für das Cookie-Element ab.

CookieNamespace

Ruft den Namespace für das Cookie-Element ab.

DefaultTokenLifetime

Ruft die Standardtokenlebensdauer ab.

TokenLifetime

Ruft die Tokenlebensdauer ab oder legt sie fest.

TokenType

Ruft den Typ der Token ab, die dieser Handler verarbeitet.

Transforms

Ruft die Transformationen ab, die auf das Cookie angewendet werden.

Methoden

Name Beschreibung
ApplyTransforms(Byte[], Boolean)

Wendet die von der Transforms Eigenschaft angegebenen Transformationen auf das Codieren oder Decodieren des angegebenen Cookies an.

CanReadKeyIdentifierClause(XmlReader)

Gibt einen Wert zurück, der angibt, ob das vom angegebenen XML-Reader referenzierte XML-Element eine Schlüsselbezeichnerklausel ist, die von dieser Instanz deserialisiert werden kann.

(Geerbt von SecurityTokenHandler)
CanReadToken(String)

Gibt einen Wert zurück, der angibt, ob die angegebene Zeichenfolge als Token des Typs, der von dieser Instanz verarbeitet wird, deserialisiert werden kann.

(Geerbt von SecurityTokenHandler)
CanReadToken(XmlReader)

Gibt einen Wert zurück, der angibt, ob der Leser an einem <wsc:SecurityContextToken> Element positioniert ist.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Gibt einen Wert zurück, der angibt, ob die angegebene Schlüsselbezeichnerklausel von dieser Instanz serialisiert werden kann.

(Geerbt von SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird der Sicherheitstokenverweis für von dieser Klasse verarbeitete Token erstellt. Diese Methode wird in der Regel von einem Sicherheitstokendienst (Security Token Service, STS) aufgerufen.

(Geerbt von SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Erstellt einen SessionSecurityToken basierend auf dem angegebenen Anspruchsprinzipal und zeitbereich, in dem das Token gültig ist.

CreateToken(SecurityTokenDescriptor)

Erstellt ein Sicherheitstoken basierend auf dem angegebenen Tokendeskriptor.

DetectReplayedToken(SecurityToken)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Ausnahme ausgelöst, wenn das angegebene Token als wiedergegeben erkannt wird.

(Geerbt von SecurityTokenHandler)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetTokenTypeIdentifiers()

Ruft die Tokentyp-URIs für die Tokentypen ab, die von diesem Handler verarbeitet werden können.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
LoadCustomConfiguration(XmlNodeList)

Lädt die benutzerdefinierte Konfiguration aus XML.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ReadKeyIdentifierClause(XmlReader)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der XML-Code, auf den vom angegebenen XML-Reader verwiesen wird, auf eine Schlüsselbezeichnerklausel zurückgestellt, die auf ein von der abgeleiteten Klasse verarbeitetes Token verweist.

(Geerbt von SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

Liest den SessionSecurityToken Datenstrom von Bytes mithilfe des angegebenen Tokenlösers aus.

ReadToken(String)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird die angegebene Zeichenfolge auf ein Token des Typs, der von der abgeleiteten Klasse verarbeitet wird, deserialisiert.

(Geerbt von SecurityTokenHandler)
ReadToken(XmlReader, SecurityTokenResolver)

Liest die SessionSecurityToken Verwendung des angegebenen XML-Readers und des Tokenlösers.

ReadToken(XmlReader)

Liest die SessionSecurityToken Verwendung des angegebenen XML-Readers.

SetTransforms(IEnumerable<CookieTransform>)

Legt die Transformationen fest, die auf Cookies angewendet werden.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TraceTokenValidationFailure(SecurityToken, String)

Verfolgt das Fehlerereignis während der Überprüfung von Sicherheitstoken nach, wenn die Ablaufverfolgung aktiviert ist.

(Geerbt von SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Verfolgt die erfolgreiche Überprüfung des Sicherheitstokenereignisses, wenn die Ablaufverfolgung aktiviert ist.

(Geerbt von SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Bestimmt, ob die dem angegebenen Token zugeordnete Sitzung noch gültig ist. Die Gültigkeit wird durch Überprüfen und ValidFromValidTo Eigenschaften des angegebenen Tokens bestimmt. Eine Ausnahme wird ausgelöst, wenn die Sitzung nicht mehr gültig ist.

ValidateToken(SecurityToken)

Überprüft das angegebene Token und gibt seine Ansprüche zurück.

ValidateToken(SessionSecurityToken, String)

Überprüft das angegebene Sitzungstoken und gibt seine Ansprüche zurück.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, serialisiert die angegebene Schlüsselbezeichnerklausel in XML. Die Schlüsselbezeichnerklausel muss vom Typ sein, der von der abgeleiteten Klasse unterstützt wird.

(Geerbt von SecurityTokenHandler)
WriteToken(SecurityToken)

Beim Überschreiben in einer abgeleiteten Klasse serialisiert das angegebene Sicherheitstoken in eine Zeichenfolge. Das Token muss vom Typ sein, der von der abgeleiteten Klasse verarbeitet wird.

(Geerbt von SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Serialisiert das angegebene Token in ein Bytearray.

WriteToken(XmlWriter, SecurityToken)

Serialisiert das angegebene Token mithilfe des angegebenen XML-Writers.

Gilt für:

Weitere Informationen