SessionSecurityTokenHandler Класс

Определение

SecurityTokenHandler, который обрабатывает токены безопасности типа SessionSecurityToken.A SecurityTokenHandler that processes security tokens of type 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
Наследование
SessionSecurityTokenHandler
Производный

Примеры

В следующем коде XML показано, как заменить обработчик токенов безопасности сеанса по умолчанию в коллекции обработчиков маркеров экземпляром MachineKeySessionSecurityTokenHandler класса в конфигурации.The following XML shows how to replace the default session security token handler in a token handler collection with an instance of the MachineKeySessionSecurityTokenHandler class in configuration.

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

Комментарии

SessionSecurityTokenHandler Класс сериализует, десериализует и проверяет токены сеанса.The SessionSecurityTokenHandler class serializes, deserializes, and validates session tokens. Токены сеанса — это маркеры SessionSecurityTokenтипа.Session tokens are tokens of type SessionSecurityToken. SessionSecurityTokenHandler Класс сериализует маркеры в формат файла cookie и обратно.The SessionSecurityTokenHandler class serializes the tokens to and from cookie format. По умолчанию класс сериализует маркеры в элементы WS-Secure Conversation Feb2005 или WS-Secure Conversation 1,3 <wsc:SecurityContextToken> .By default, the class serializes tokens into WS-Secure Conversation Feb2005 or WS-Secure Conversation 1.3 <wsc:SecurityContextToken> elements. Токены сеанса используются WSFederationAuthenticationModule (всфам) SessionAuthenticationModule и (SAM) для хранения сведений о сеансе. в первую очередь, ClaimsPrincipal это связано с прошедшей проверку подлинности пользователем и временем начала и истечения срока действия сеанса.Session tokens are used by the WSFederationAuthenticationModule (WSFAM) and the SessionAuthenticationModule (SAM) to store information about a session, this is primarily the ClaimsPrincipal associated with the authenticated user and the session start and expiration times.

В пассивных сценариях WSFederationAuthenticationModule вызовы SessionAuthenticationModule к (SAM) из конвейера проверки подлинности создают токен сеанса из ClaimsPrincipal , который представляет пользователя, прошедшего проверку подлинности.In passive scenarios, the WSFederationAuthenticationModule calls into the SessionAuthenticationModule (SAM) from the authentication pipeline to create a session token from the ClaimsPrincipal that represents the authenticated user. Диспетчер SAM использует настроенный SessionSecurityTokenHandler для создания маркера и его сериализации в файл cookie (и для десериализации маркера из файла cookie в последующих запросах).The SAM uses its configured SessionSecurityTokenHandler to create the token and to serialize it into a cookie (and to deserialize the token from a cookie on subsequent requests). SAM использует экземпляр настроенного CookieHandler класса для записи файла cookie обратно в HTTP-ответ.The SAM uses an instance of its configured CookieHandler class to write the cookie back to the HTTP Response. Затем этот файл cookie возвращается клиенту, а в последующих запросах клиент может представлять файл cookie, а не циклический обмен данными с поставщиком удостоверений для повторного получения маркера безопасности.This cookie is then returned to the client and on subsequent requests the client can present the cookie rather than making a round trip back to the identity provider to re-obtain a security token. Дополнительные сведения о том, как сеансы работают с WIF, см. в разделе WIF Session Management.For more information about how sessions operate with WIF, see WIF Session Management.

Примечание

Элемент конфигурации SessionSecurityTokenHandler securityTokenHandlers > можно использовать для указания объекта, ответственного за защиту сеансов приложения. <The <securityTokenHandlers> configuration element can be used to specify a SessionSecurityTokenHandler that has the responsibility for securing the application's sessions. Разработчики должны соблюдать осторожность при изменении этого параметра конфигурации, так как неправильно настроенная система может привести к компрометации приложения.Developers should use caution when changing this configuration setting, as a misconfigured system could result in application compromise. Например, при указании производного SessionSecurityTokenHandler экземпляра и передаче коллекции пустых преобразований (кукиетрансформ) в базовый идентификатор пользователя будет сериализован в файл cookie, который не был защищен.For example, specifying a derived SessionSecurityTokenHandler and passing an empty Transforms (CookieTransform) collection to the base, would result in the users identity being serialized into a cookie that was not protected. Это может позволить злоумышленнику изменить удостоверение и, соответственно, изменить права доступа.This could allow an attacker to modify the identity and therefore change access privileges.

Если токен сеанса находится в режиме ссылки, то есть его SessionSecurityToken.IsReferenceMode свойство имеет trueзначение, обработчик токена сеанса только Сериализует свойства токена сеанса, которые необходимы для SessionSecurityTokenCacheповторного создания ключа в.If the session token is in reference mode, that is, its SessionSecurityToken.IsReferenceMode property is true, the session token handler only serializes properties of the session token that are needed to regenerate its key in the SessionSecurityTokenCache. В случае SessionSecurityTokenCacheKey по умолчанию класс используется для представления ключей кэша, а обработчик токена SessionSecurityToken.ContextId записывает свойства и SessionSecurityToken.KeyGeneration токена.In the default case, the SessionSecurityTokenCacheKey class is used to represent cache keys, and the token handler writes the SessionSecurityToken.ContextId and SessionSecurityToken.KeyGeneration properties of the token. Если токен сеанса не находится в режиме ссылки, то есть SessionSecurityToken.IsReferenceMode свойство имеет falseзначение, а в дополнение к упомянутым выше свойствам обработчик вызывает ApplyTransforms метод для массива байтов, сериализованного из токена, и сохраняет результирующее значение также в файле cookie.If the session token is not in reference mode, that is, the SessionSecurityToken.IsReferenceMode property is false, then, in addition to the properties mentioned previously, the handler invokes the ApplyTransforms method on a byte array serialized from the token and stores the resulting value in the cookie as well. Дополнительные сведения о сериализации маркера см. в SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) описании метода.For more details about how the token is serialized, see the SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) method.

Свойство получает список преобразований, которые применяются к токену сеанса ApplyTransforms в методе. TransformsThe Transforms property gets the list of transforms that are applied to the session token in the ApplyTransforms method. Все преобразования являются производными от CookieTransform класса.All transforms derive from the CookieTransform class. В случае DeflateCookieTransform по умолчанию применяются ProtectedDataCookieTransform и.In the default case the DeflateCookieTransform and the ProtectedDataCookieTransform are applied. ProtectedDataCookieTransform Использует API защиты данных (DPAPI) для защиты материала файла cookie.The ProtectedDataCookieTransform uses the Data Protection API (DPAPI) to protect the cookie material. DPAPI использует ключ, относящийся к компьютеру, на котором он работает в алгоритмах защиты.DPAPI uses a key that is specific to the computer on which it is running in its protection algorithms. По этой причине обработчик токенов сеансов по умолчанию не может использоваться в сценариях веб-фермы, поскольку в таких сценариях может потребоваться чтение маркеров, написанных на одном компьютере, на другом компьютере.For this reason, the default session token handler is not usable in Web farm scenarios because, in such scenarios, tokens written on one computer may need to be read on another computer. Для обхода этой проблемы можно использовать много стратегий.You can use many strategies to circumvent this issue. Например, с их помощью можно выполнять следующее.For example, you can:

Дополнительные сведения об использовании сеансов в сценариях веб-фермы см. в разделе WIF and Web ферм.For more information about using sessions in Web farm scenarios, see WIF and Web Farms.

Объект SessionSecurityTokenHandler включен в коллекцию обработчиков маркеров по умолчанию, однако его можно заменить на обработчик пользовательского маркера сеанса, сначала <> указав элемент remove в разделе < элемент> securityTokenHandlers для удаления обработчика по умолчанию из коллекции и последующего добавления пользовательского <> обработчика маркеров с помощью элемента Add.The SessionSecurityTokenHandler is included in the default token handler collection; however, you can replace it with a custom session token handler by first specifying a <remove> element under the <securityTokenHandlers> element to remove the default handler from the collection and then adding your custom token handler using the <add> element. По умолчанию время существования токена по умолчанию можно указать <,> включив элемент сессионтокенрекуиремент <add> в элемент.By default, you can specify the default token lifetime by including the <sessionTokenRequirement> element under the <add> element. Можно разработать пользовательский обработчик маркеров для получения пользовательских элементов конфигурации в <add> элементе, LoadCustomConfiguration переопределив метод, чтобы предоставить логику для обработки.You can design a custom token handler to take custom configuration elements under the <add> element by overriding the LoadCustomConfiguration method to provide the logic to process them.

Конструкторы

SessionSecurityTokenHandler()

Инициализирует новый экземпляр класса SessionSecurityTokenHandler, использующий преобразования файлов cookie и время жизни токена по умолчанию.Initializes a new instance of the SessionSecurityTokenHandler class that uses the default cookie transforms and token lifetime.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Инициализирует новый экземпляр класса SessionSecurityTokenHandler, в котором используются указанные преобразования файла cookie.Initializes a new instance of the SessionSecurityTokenHandler class that uses the specified cookie transforms.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Инициализирует новый экземпляр класса SessionSecurityTokenHandler, использующий указанные преобразования файлов cookie и время жизни токена.Initializes a new instance of the SessionSecurityTokenHandler class that uses the specified cookie transforms and token lifetime.

Поля

DefaultCookieTransforms

Только для чтения коллекция, содержащая список по умолчанию преобразований, которые применяются к файлам cookie, DeflateCookieTransform и ProtectedDataCookieTransform.A read only collection that contains the list of default transforms to be applied to cookies, the DeflateCookieTransform and the ProtectedDataCookieTransform.

DefaultLifetime

Константа, которая указывает время существования по умолчанию для файла cookie, 10 часов.A constant that specifies the default lifetime for cookies, ten hours.

Свойства

CanValidateToken

Получает значение, указывающее, может ли этот обработчик поддерживать проверку токенов типа SessionSecurityToken.Gets a value that indicates whether this handler supports validation of tokens of type SessionSecurityToken.

CanWriteToken

Получает значение, указывающее, может ли этот обработчик записать токены типа SessionSecurityToken.Gets a value that indicates whether this handler can write tokens of type SessionSecurityToken.

Configuration

Получает или задает объект SecurityTokenHandlerConfiguration, который предоставляет конфигурацию для текущего экземпляра.Gets or sets the SecurityTokenHandlerConfiguration object that provides configuration for the current instance.

(Унаследовано от SecurityTokenHandler)
ContainingCollection

Получает коллекцию обработчиков токена, содержащую текущий экземпляр.Gets the token handler collection that contains the current instance.

(Унаследовано от SecurityTokenHandler)
CookieElementName

Получает имя для элемента файла cookie.Gets the name for the cookie element.

CookieNamespace

Получает пространство имен для элемента файла cookie.Gets the namespace for the cookie element.

DefaultTokenLifetime

Получает время жизни токена по умолчанию.Gets the default token lifetime.

TokenLifetime

Получает или задает время жизни токена.Gets or sets the token lifetime.

TokenType

Получает тип токенов, обрабатываемых данным обработчиком.Gets the type of the tokens that this handler processes.

Transforms

Получает преобразования, который будут применены к этому файлу cookie.Gets the transforms that will be applied to the cookie.

Методы

ApplyTransforms(Byte[], Boolean)

Применяет преобразования, заданные свойством Transforms, чтобы кодировать или декодировать указанный файл cookie.Applies the transforms specified by the Transforms property to either encode or decode the specified cookie.

CanReadKeyIdentifierClause(XmlReader)

Возвращает значение, указывающее, является ли элемент xml, на которое ссылается указанное средство чтения XML, предложением идентификатора ключа, которое может десериализоваться этим экземпляром.Returns a value that indicates whether the XML element referred to by the specified XML reader is a key identifier clause that can be deserialized by this instance.

(Унаследовано от SecurityTokenHandler)
CanReadToken(String)

Возвращает значение, показывающее, может ли указанная строка десериализоваться как токен типа, обработанного этим экземпляром.Returns a value that indicates whether the specified string can be deserialized as a token of the type processed by this instance.

(Унаследовано от SecurityTokenHandler)
CanReadToken(XmlReader)

Возвращает значение, указывающее, расположено ли средство чтения в элементе <wsc:SecurityContextToken>.Returns a value that indicates whether the reader is positioned at a <wsc:SecurityContextToken> element.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Возвращает значение, показывающее, может ли указанная конструкция идентификатора ключа быть сериализована этим экземпляром.Returns a value that indicates whether the specified key identifier clause can be serialized by this instance.

(Унаследовано от SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

При переопределении в производном классе создает ссылку токена безопасности для токенов, обрабатываемых этим классом.When overridden in a derived class, creates the security token reference for tokens processed by that class. Этот метод обычно вызывается службой токенов безопасности (STS).This method is typically called by a security token service (STS).

(Унаследовано от SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Создает SessionSecurityToken на основе указанного субъекта утверждений и диапазона времени, в течение которого токен является допустимым.Creates a SessionSecurityToken based on the specified claims principal and time range during which the token is valid.

CreateToken(SecurityTokenDescriptor)

Создает токен безопасности на основе заданного дескриптора токена.Creates a security token based on the specified token descriptor.

DetectReplayedToken(SecurityToken)

При переопределении в производном классе вызывает исключение, если обнаруживается, что указанный токен используется повторно.When overridden in a derived class, throws an exception if the specified token is detected as being replayed.

(Унаследовано от SecurityTokenHandler)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetTokenTypeIdentifiers()

Получает универсальные коды ресурсов (URI) идентификаторов типов токенов для типов токенов, которые могут обрабатываться этим обработчиком.Gets the token type URIs for the token types that can be processed by this handler.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
LoadCustomConfiguration(XmlNodeList)

Загружает пользовательскую конфигурацию из XML.Loads custom configuration from XML.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ReadKeyIdentifierClause(XmlReader)

При переопределении в производном классе десериализует XML-код, на который имеется ссылка в указанном модуле чтения XML, в конструкцию идентификатора ключа, который ссылается на токен, обрабатываемый производным классом.When overridden in a derived class, deserializes the XML referenced by the specified XML reader to a key identifier clause that references a token processed by the derived class.

(Унаследовано от SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

Считывает SessionSecurityToken из потока байтов с помощью заданного сопоставителя токенов.Reads the SessionSecurityToken from a stream of bytes by using the specified token resolver.

ReadToken(String)

При переопределении в производном классе десериализует заданную строку в токен обрабатываемого этим производным классом типа.When overridden in a derived class, deserializes the specified string to a token of the type processed by the derived class.

(Унаследовано от SecurityTokenHandler)
ReadToken(XmlReader)

Считывает SessionSecurityToken, используя указанное средство чтения XML.Reads the SessionSecurityToken using the specified XML reader.

ReadToken(XmlReader, SecurityTokenResolver)

Считывает SessionSecurityToken, используя указанные сопоставитель токена и средства чтения XML.Reads the SessionSecurityToken using the specified XML reader and token resolver.

SetTransforms(IEnumerable<CookieTransform>)

Задает преобразование, применяемое к файлам cookie.Sets the transforms that will be applied to cookies.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
TraceTokenValidationFailure(SecurityToken, String)

Трассирует событие сбоя во время проверки токенов безопасности, если трассировка включена.Traces the failure event during the validation of security tokens when tracing is enabled.

(Унаследовано от SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Трассирует успешную проверку событий токен безопасности, если трассировка включена.Traces the successful validation of security tokens event when tracing is enabled.

(Унаследовано от SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Определяет, является ли сеанс, связанный с заданным токеном, все еще действительным.Determines whether the session associated with the specified token is still valid. Допустимость определяется путем проверки свойств ValidFrom и ValidTo указанного токена.Validity is determined by checking the ValidFrom and ValidTo properties of the specified token. Исключение возникает, когда сеанс более не допустим.An exception is thrown if the session is no longer valid.

ValidateToken(SecurityToken)

Проверяет указанный маркер и возвращает его утверждения.Validates the specified token and returns its claims.

ValidateToken(SessionSecurityToken, String)

Проверяет указанный токен сеанса и возвращает его утверждения.Validates the specified session token and returns its claims.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

При переопределении в производном классе сериализует указанную конструкцию идентификатора ключа в формат XML.When overridden in a derived class, serializes the specified key identifier clause to XML. Предложения идентификатора ключа должно иметь тип, поддерживаемый производным классом.The key identifier clause must be of the type supported by the derived class.

(Унаследовано от SecurityTokenHandler)
WriteToken(SecurityToken)

При переопределении в производном классе сериализует указанный токен безопасности в строку.When overridden in a derived class, serializes the specified security token to a string. Токен должен иметь тип, обрабатываемый производным классом.The token must be of the type processed by the derived class.

(Унаследовано от SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Сериализует указанный токен в массив байтов.Serializes the specified token into a byte array.

WriteToken(XmlWriter, SecurityToken)

Сериализует указанный токен с помощью заданного модуля записи XML.Serializes the specified token by using the specified XML writer.

Применяется к

Дополнительно