SessionSecurityTokenHandler Klass

Definition

A SecurityTokenHandler som bearbetar säkerhetstoken av typen 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
Arv
SessionSecurityTokenHandler
Härledda

Exempel

Följande XML visar hur du ersätter standardhanteraren för sessionssäkerhetstoken i en tokenhanterarsamling med en instans av MachineKeySessionSecurityTokenHandler klassen i konfigurationen.

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

Kommentarer

Klassen SessionSecurityTokenHandler serialiserar, deserialiserar och validerar sessionstoken. Sessionstoken är token av typen SessionSecurityToken. Klassen SessionSecurityTokenHandler serialiserar token till och från cookieformat. Som standard serialiserar klassen token i WS-Secure Conversation Feb2005 eller WS-Secure Conversation 1.3-element <wsc:SecurityContextToken> . Sessionstoken används av WSFederationAuthenticationModule (WSFAM) och SessionAuthenticationModule (SAM) för att lagra information om en session, detta är främst associerat med den autentiserade ClaimsPrincipal användaren och sessionens start- och förfallotider.

I passiva scenarier anropar anropen WSFederationAuthenticationModuleSessionAuthenticationModule till (SAM) från autentiseringspipelinen för att skapa en sessionstoken från ClaimsPrincipal den som representerar den autentiserade användaren. SAM använder sin konfigurerade SessionSecurityTokenHandler för att skapa token och serialisera den till en cookie (och för att deserialisera token från en cookie på efterföljande begäranden). SAM använder en instans av sin konfigurerade CookieHandler klass för att skriva tillbaka cookien till HTTP-svaret. Den här cookien returneras sedan till klienten och vid efterföljande begäranden kan klienten presentera cookien i stället för att göra en tur- och returresa tillbaka till identitetsprovidern för att hämta en säkerhetstoken igen. Mer information om hur sessioner fungerar med WIF finns i WIF-sessionshantering.

Note

Konfigurationselementet <securityTokenHandlers> kan användas för att ange ett SessionSecurityTokenHandler som har ansvaret för att skydda programmets sessioner. Utvecklare bör vara försiktiga när de ändrar den här konfigurationsinställningen, eftersom ett felkonfigurerat system kan leda till att programmet komprometteras. Om du till exempel anger en härledd SessionSecurityTokenHandler och skickar en tom CookieTransform-samling (Transforms) till basen skulle användaridentiteten serialiseras till en cookie som inte var skyddad. Detta kan göra det möjligt för en angripare att ändra identiteten och därmed ändra åtkomstbehörigheter.

Om sessionstoken är i referensläge, d.v.s. dess SessionSecurityToken.IsReferenceMode egenskap är true, serialiserar sessionstokenhanteraren endast egenskaperna för den sessionstoken som behövs för att återskapa dess nyckel i SessionSecurityTokenCache. I standardfallet SessionSecurityTokenCacheKey används klassen för att representera cachenycklar och tokenhanteraren skriver tokens SessionSecurityToken.ContextId egenskaper och SessionSecurityToken.KeyGeneration . Om sessionstoken inte är i referensläge, d.v.s. SessionSecurityToken.IsReferenceMode egenskapen är false, anropar ApplyTransforms hanteraren, förutom de egenskaper som nämnts tidigare, metoden på en bytematris som serialiseras från token och lagrar även det resulterande värdet i cookien. Mer information om hur token serialiseras finns i SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) metoden.

Egenskapen Transforms hämtar listan över transformeringar som tillämpas på sessionstoken i ApplyTransforms -metoden. Alla transformeringar härleds från CookieTransform klassen. I standardfallet DeflateCookieTransform tillämpas och ProtectedDataCookieTransform . ProtectedDataCookieTransform Använder Dataskydds-API :et (DPAPI) för att skydda cookiematerialet. DPAPI använder en nyckel som är specifik för den dator där den körs i sina skyddsalgoritmer. Därför kan standardhanteraren för sessionstoken inte användas i webbgruppsscenarier eftersom token som skrivs på en dator i sådana scenarier kan behöva läsas på en annan dator. Du kan använda många strategier för att kringgå det här problemet. Till exempel kan du:

Mer information om hur du använder sessioner i webbgruppsscenarier finns i WIF och Web Farms.

SessionSecurityTokenHandler Ingår i standardsamlingen för tokenhanterare. Du kan dock ersätta den med en anpassad sessionstokenhanterare genom att först ange ett <remove-element> under elementet <securityTokenHandlers> för att ta bort standardhanteraren från samlingen och sedan lägga till din anpassade tokenhanterare med hjälp av< lägg till-elementet>. Som standard kan du ange standardtokens livslängd genom att inkludera elementet <sessionTokenRequirement> under elementet <add> . Du kan utforma en anpassad tokenhanterare för att ta anpassade konfigurationselement under elementet <add> genom att åsidosätta LoadCustomConfiguration metoden för att tillhandahålla logiken för att bearbeta dem.

Konstruktorer

Name Description
SessionSecurityTokenHandler()

Initierar en ny instans av SessionSecurityTokenHandler klassen som använder standardcookietransformeringar och tokenlivslängd.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Initierar en ny instans av SessionSecurityTokenHandler klassen som använder de angivna cookietransformorna och tokenlivslängden.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Initierar en ny instans av SessionSecurityTokenHandler klassen som använder de angivna cookietransformorna.

Fält

Name Description
DefaultCookieTransforms

En skrivskyddad samling som innehåller listan över standardtransformeringar som ska tillämpas på cookies, DeflateCookieTransform och ProtectedDataCookieTransform.

DefaultLifetime

En konstant som anger standardlivslängden för cookies, tio timmar.

Egenskaper

Name Description
CanValidateToken

Hämtar ett värde som anger om den här hanteraren stöder validering av token av typen SessionSecurityToken.

CanWriteToken

Hämtar ett värde som anger om den här hanteraren kan skriva token av typen SessionSecurityToken.

Configuration

Hämtar eller anger objektet SecurityTokenHandlerConfiguration som tillhandahåller konfiguration för den aktuella instansen.

(Ärvd från SecurityTokenHandler)
ContainingCollection

Hämtar den tokenhanterarsamling som innehåller den aktuella instansen.

(Ärvd från SecurityTokenHandler)
CookieElementName

Hämtar namnet på cookieelementet.

CookieNamespace

Hämtar namnområdet för cookieelementet.

DefaultTokenLifetime

Hämtar standardtokens livslängd.

TokenLifetime

Hämtar eller anger tokenlivslängden.

TokenType

Hämtar typen av token som den här hanteraren bearbetar.

Transforms

Hämtar de transformeringar som ska tillämpas på cookien.

Metoder

Name Description
ApplyTransforms(Byte[], Boolean)

Tillämpar de transformeringar som anges av Transforms egenskapen för att antingen koda eller avkoda den angivna cookien.

CanReadKeyIdentifierClause(XmlReader)

Returnerar ett värde som anger om XML-elementet som den angivna XML-läsaren refererar till är en nyckelidentifierarsats som kan deserialiseras av den här instansen.

(Ärvd från SecurityTokenHandler)
CanReadToken(String)

Returnerar ett värde som anger om den angivna strängen kan deserialiseras som en token av den typ som bearbetas av den här instansen.

(Ärvd från SecurityTokenHandler)
CanReadToken(XmlReader)

Returnerar ett värde som anger om läsaren är placerad på ett <wsc:SecurityContextToken> element.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Returnerar ett värde som anger om den angivna nyckelidentifierarsatsen kan serialiseras av den här instansen.

(Ärvd från SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

När den åsidosätts i en härledd klass skapar du referensen för säkerhetstoken för token som bearbetas av den klassen. Den här metoden anropas vanligtvis av en säkerhetstokentjänst (STS).

(Ärvd från SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Skapar ett SessionSecurityToken baserat på angivet anspråkshuvudnamn och tidsintervall under vilket token är giltig.

CreateToken(SecurityTokenDescriptor)

Skapar en säkerhetstoken baserat på den angivna tokenbeskrivningen.

DetectReplayedToken(SecurityToken)

När det åsidosättas i en härledd klass utlöser ett undantag om den angivna token identifieras som omspelad.

(Ärvd från SecurityTokenHandler)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetTokenTypeIdentifiers()

Hämtar tokentypens URI:er för de tokentyper som kan bearbetas av den här hanteraren.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
LoadCustomConfiguration(XmlNodeList)

Läser in anpassad konfiguration från XML.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ReadKeyIdentifierClause(XmlReader)

När den åsidosätts i en härledd klass deserialiserar xml-koden som refereras av den angivna XML-läsaren till en nyckelidentifierarsats som refererar till en token som bearbetas av den härledda klassen.

(Ärvd från SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

SessionSecurityToken Läser från en ström med byte med hjälp av den angivna tokenlösaren.

ReadToken(String)

När den åsidosättas i en härledd klass deserialiserar den angivna strängen till en token av den typ som bearbetas av den härledda klassen.

(Ärvd från SecurityTokenHandler)
ReadToken(XmlReader, SecurityTokenResolver)

SessionSecurityToken Läser med den angivna XML-läsaren och tokenlösaren.

ReadToken(XmlReader)

SessionSecurityToken Läser med den angivna XML-läsaren.

SetTransforms(IEnumerable<CookieTransform>)

Anger de transformeringar som ska tillämpas på cookies.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TraceTokenValidationFailure(SecurityToken, String)

Spårar felhändelsen under valideringen av säkerhetstoken när spårning är aktiverat.

(Ärvd från SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Spårar den lyckade valideringen av säkerhetstokenhändelsen när spårning är aktiverad.

(Ärvd från SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Avgör om sessionen som är associerad med den angivna token fortfarande är giltig. Giltigheten bestäms genom att kontrollera ValidFrom egenskaperna och ValidTo för den angivna token. Ett undantag utlöses om sessionen inte längre är giltig.

ValidateToken(SecurityToken)

Validerar den angivna token och returnerar dess anspråk.

ValidateToken(SessionSecurityToken, String)

Validerar den angivna sessionstoken och returnerar dess anspråk.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

När den åsidosättas i en härledd klass serialiserar den angivna nyckelidentifierarsatsen till XML. Nyckelidentifierarsatsen måste vara av den typ som stöds av den härledda klassen.

(Ärvd från SecurityTokenHandler)
WriteToken(SecurityToken)

När den åsidosättas i en härledd klass serialiserar den angivna säkerhetstoken till en sträng. Token måste vara av den typ som bearbetas av den härledda klassen.

(Ärvd från SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Serialiserar den angivna token till en bytematris.

WriteToken(XmlWriter, SecurityToken)

Serialiserar den angivna token med hjälp av den angivna XML-skrivaren.

Gäller för

Se även