MachineKeySessionSecurityTokenHandler Класс

Определение

Обрабатывает Токены сеанса с помощью подписи и ключей шифрования, определенных в элементе <machineKey> ASP.NET в файле конфигурации.Processes session tokens by using signing and encryption keys specified in the ASP.NET <machineKey> element in a configuration file.

public ref class MachineKeySessionSecurityTokenHandler : System::IdentityModel::Tokens::SessionSecurityTokenHandler
public class MachineKeySessionSecurityTokenHandler : System.IdentityModel.Tokens.SessionSecurityTokenHandler
type MachineKeySessionSecurityTokenHandler = class
    inherit SessionSecurityTokenHandler
Public Class MachineKeySessionSecurityTokenHandler
Inherits SessionSecurityTokenHandler
Наследование
MachineKeySessionSecurityTokenHandler

Примеры

В следующем коде XML показано, как использовать элемент <machineKey> ASP.NET в конфигурации, чтобы явно указать ключи подписывания и шифрования.The following XML shows how to use the ASP.NET <machineKey> element in configuration to explicitly specify signing and encryption keys. <machineKey> Элемент указывается<system.web> в элементе в файле конфигурации.The <machineKey> element is specified under the <system.web> element in a configuration file.

<machineKey compatibilityMode="Framework45" decryptionKey="CC510D … 8925E6" validationKey="BEAC8 … 6A4B1DE" />  

Ниже приведен код XML, демонстрирующий добавление MachineKeySessionSecurityTokenHandler в коллекцию обработчиков токенов.The following XML shows how to add the MachineKeySessionSecurityTokenHandler to a token handler collection. Значение по SessionSecurityTokenHandler умолчанию сначала удаляется из коллекции.The default SessionSecurityTokenHandler is first removed from the collection. Обработчики маркеров настраиваются в <элементе> securityTokenHandlers .Token handlers are configured under the <securityTokenHandlers> element.

<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 класс ProtectedDataCookieTransform использует класс, который использует API защиты данных (DPAPI) для защиты токена сеанса.By default, the SessionSecurityTokenHandler class uses the ProtectedDataCookieTransform class, which uses the Data Protection API (DPAPI), to protect the session token. Интерфейс API защиты данных обеспечивает защиту с помощью учетных данных пользователя или компьютера и сохраняет данные ключей в профиле пользователя.The DPAPI provides protection by using the user or machine credentials and stores the key data in the user profile. Это означает, что маркер сеанса, подписанный и зашифрованный на одном компьютере, не может быть проверен или расшифрован на другом компьютере.This means that a session token signed and encrypted on one computer cannot be validated or decrypted on a different computer.

В отличие от этого MachineKeySessionSecurityTokenHandler , класс MachineKeyTransform использует класс, который защищает данные cookie сеанса с помощью <machineKey> криптографического материала, указанного в элементе в файле конфигурации.By contrast, the MachineKeySessionSecurityTokenHandler class uses the MachineKeyTransform class, which protects the session cookie data by using the cryptographic material specified in the <machineKey> element in the configuration file. Это означает, что одни и те же ключи (и токены сеанса) можно использовать на нескольких компьютерах.This means that the same keys (and session tokens) can be used across multiple computers. Это особенно важно при развертывании приложения в веб-ферме.This is particularly important when an application is deployed in a web farm. Дополнительные сведения об использовании Windows Identity Foundation для защиты приложений, развернутых на веб-ферме, см. в разделе WIF и веб-фермы.For more information about how to use Windows Identity Foundation to protect applications that are deployed in a web farm, see WIF and Web Farms.

Настройте в приложении использование обработчика MachineKeySessionSecurityTokenHandler, добавив его в коллекцию обработчиков токенов.Configure the application to use the MachineKeySessionSecurityTokenHandler by adding it to the token handler collection. Сначала из коллекции обработчиков токенов нужно удалить обработчик SessionSecurityTokenHandler (или любой другой обработчик, производный от класса SessionSecurityTokenHandler), если он имеется.You must first remove the SessionSecurityTokenHandler (or any handler derived from the SessionSecurityTokenHandler class) from the token handler collection if such a handler is present. Это происходит потому MachineKeySessionSecurityTokenHandler , что является SessionSecurityTokenHandler производным от и коллекция обработчиков маркеров не может содержать несколько обработчиков любого заданного типа.This is because MachineKeySessionSecurityTokenHandler derives from SessionSecurityTokenHandler and a token handler collection cannot contain multiple handlers of any given type.

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

MachineKeySessionSecurityTokenHandler()

Инициализирует новый экземпляр класса MachineKeySessionSecurityTokenHandler.Initializes a new instance of the MachineKeySessionSecurityTokenHandler class.

MachineKeySessionSecurityTokenHandler(TimeSpan)

Инициализирует новый экземпляр класса MachineKeySessionSecurityTokenHandler, содержащий указанное время жизни токена по умолчанию.Initializes a new instance of the MachineKeySessionSecurityTokenHandler class that has the specified default token lifetime.

Свойства

CanValidateToken

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

(Унаследовано от SessionSecurityTokenHandler)
CanWriteToken

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

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
CookieNamespace

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

(Унаследовано от SessionSecurityTokenHandler)
TokenLifetime

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

(Унаследовано от SessionSecurityTokenHandler)
TokenType

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

(Унаследовано от SessionSecurityTokenHandler)
Transforms

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

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

Методы

ApplyTransforms(Byte[], Boolean)

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

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
CreateToken(SecurityTokenDescriptor)

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

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
GetType()

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

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

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

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
ReadToken(XmlReader, SecurityTokenResolver)

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

(Унаследовано от SessionSecurityTokenHandler)
SetTransforms(IEnumerable<CookieTransform>)

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

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
ValidateToken(SecurityToken)

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

(Унаследовано от SessionSecurityTokenHandler)
ValidateToken(SessionSecurityToken, String)

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

(Унаследовано от SessionSecurityTokenHandler)
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.

(Унаследовано от SessionSecurityTokenHandler)
WriteToken(XmlWriter, SecurityToken)

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

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

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

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