Поделиться через


MachineKeySessionSecurityTokenHandler Класс

Определение

Обрабатывает Токены сеанса с помощью подписи и ключей шифрования, определенных в элементе <machineKey> ASP.NET в файле конфигурации.

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-коде показано, как использовать элемент ASP.NET <machineKey> в конфигурации для явного указания ключей подписывания и шифрования. Элемент <machineKey> указывается под элементом <system.web> в файле конфигурации.

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

Ниже приведен код XML, демонстрирующий добавление MachineKeySessionSecurityTokenHandler в коллекцию обработчиков токенов. Значение по умолчанию SessionSecurityTokenHandler сначала удаляется из коллекции. Обработчики маркеров настраиваются в элементе <securityTokenHandlers> .

<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) для защиты маркера сеанса. Интерфейс API защиты данных обеспечивает защиту с помощью учетных данных пользователя или компьютера и сохраняет данные ключей в профиле пользователя. Это означает, что маркер сеанса, подписанный и зашифрованный на одном компьютере, не может быть проверен или расшифрован на другом компьютере.

В отличие от этого, MachineKeySessionSecurityTokenHandler класс использует MachineKeyTransform класс , который защищает данные файлов cookie сеанса, используя криптографический материал, указанный в элементе <machineKey> в файле конфигурации. Это означает, что одни и те же ключи (и маркеры сеанса) можно использовать на нескольких компьютерах. Это особенно важно при развертывании приложения в веб-ферме. Дополнительные сведения об использовании Windows Identity Foundation для защиты приложений, развернутых в веб-ферме, см. в разделе WIF и веб-фермы.

Настройте в приложении использование обработчика MachineKeySessionSecurityTokenHandler, добавив его в коллекцию обработчиков токенов. Сначала из коллекции обработчиков токенов нужно удалить обработчик SessionSecurityTokenHandler (или любой другой обработчик, производный от класса SessionSecurityTokenHandler), если он имеется. Это связано с тем, что MachineKeySessionSecurityTokenHandler является производным от SessionSecurityTokenHandler и коллекция обработчиков маркеров не может содержать несколько обработчиков любого типа.

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

MachineKeySessionSecurityTokenHandler()

Инициализирует новый экземпляр класса MachineKeySessionSecurityTokenHandler.

MachineKeySessionSecurityTokenHandler(TimeSpan)

Инициализирует новый экземпляр класса MachineKeySessionSecurityTokenHandler, содержащий указанное время жизни токена по умолчанию.

Свойства

CanValidateToken

Получает значение, указывающее, может ли этот обработчик поддерживать проверку токенов типа SessionSecurityToken.

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

Получает значение, указывающее, может ли этот обработчик записать токены типа SessionSecurityToken.

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

Получает или задает объект SecurityTokenHandlerConfiguration, который предоставляет конфигурацию для текущего экземпляра.

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

Получает коллекцию обработчиков токена, содержащую текущий экземпляр.

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

Получает имя для элемента файла cookie.

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

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

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

Получает или задает время жизни токена.

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

Получает тип токенов, обрабатываемых данным обработчиком.

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

Получает преобразования, который будут применены к этому файлу cookie.

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

Методы

ApplyTransforms(Byte[], Boolean)

Применяет преобразования, заданные свойством Transforms, чтобы кодировать или декодировать указанный файл cookie.

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

Возвращает значение, указывающее, является ли элемент xml, на которое ссылается указанное средство чтения XML, предложением идентификатора ключа, которое может десериализоваться этим экземпляром.

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

Возвращает значение, показывающее, может ли указанная строка десериализоваться как токен типа, обработанного этим экземпляром.

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

Возвращает значение, указывающее, расположено ли средство чтения в элементе <wsc:SecurityContextToken>.

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

Возвращает значение, показывающее, может ли указанная конструкция идентификатора ключа быть сериализована этим экземпляром.

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

При переопределении в производном классе создает ссылку токена безопасности для токенов, обрабатываемых этим классом. Этот метод обычно вызывается службой токенов безопасности (STS).

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

Создает SessionSecurityToken на основе указанного субъекта утверждений и диапазона времени, в течение которого токен является допустимым.

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

Создает токен безопасности на основе заданного дескриптора токена.

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

При переопределении в производном классе вызывает исключение, если обнаруживается, что указанный токен используется повторно.

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

Определяет, равен ли указанный объект текущему объекту.

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

Служит хэш-функцией по умолчанию.

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

Получает универсальные коды ресурсов (URI) идентификаторов типов токенов для типов токенов, которые могут обрабатываться этим обработчиком.

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

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

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

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

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

Создает неполную копию текущего объекта Object.

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

При переопределении в производном классе десериализует XML-код, на который имеется ссылка в указанном модуле чтения XML, в конструкцию идентификатора ключа, который ссылается на токен, обрабатываемый производным классом.

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

Считывает SessionSecurityToken из потока байтов с помощью заданного сопоставителя токенов.

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

При переопределении в производном классе десериализует заданную строку в токен обрабатываемого этим производным классом типа.

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

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

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

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

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

Задает преобразование, применяемое к файлам cookie.

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

Возвращает строку, представляющую текущий объект.

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

Трассирует событие сбоя во время проверки токенов безопасности, если трассировка включена.

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

Трассирует успешную проверку событий токен безопасности, если трассировка включена.

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

Определяет, является ли сеанс, связанный с заданным токеном, все еще действительным. Допустимость определяется путем проверки свойств ValidFrom и ValidTo указанного токена. Исключение возникает, когда сеанс более не допустим.

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

Проверяет указанный маркер и возвращает его утверждения.

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

Проверяет указанный токен сеанса и возвращает его утверждения.

(Унаследовано от SessionSecurityTokenHandler)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

При переопределении в производном классе сериализует указанную конструкцию идентификатора ключа в формат XML. Предложения идентификатора ключа должно иметь тип, поддерживаемый производным классом.

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

При переопределении в производном классе сериализует указанный токен безопасности в строку. Токен должен иметь тип, обрабатываемый производным классом.

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

Сериализует указанный токен в массив байтов.

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

Сериализует указанный токен с помощью заданного модуля записи XML.

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

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

См. также раздел