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
- Наследование
Примеры
В следующем 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) |
Возвращает значение, указывающее, расположено ли средство чтения в элементе |
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) |