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


SecurityTokenHandler Класс

Определение

Абстрактный базовый класс для обработчиков токенов безопасности.

public ref class SecurityTokenHandler abstract : System::IdentityModel::Configuration::ICustomIdentityConfiguration
public abstract class SecurityTokenHandler : System.IdentityModel.Configuration.ICustomIdentityConfiguration
type SecurityTokenHandler = class
    interface ICustomIdentityConfiguration
Public MustInherit Class SecurityTokenHandler
Implements ICustomIdentityConfiguration
Наследование
SecurityTokenHandler
Производный
Реализации

Примеры

Примеры кода во всех разделах SecurityTokenHandler взяты из Custom Token примера. В этом примере представлены пользовательские классы, обеспечивающие обработку простых веб-маркеров (SWT). Сведения об этом и других примерах, доступных для WIF, и о том, где их можно скачать, см. в разделе WiF Code Sample Index. В следующем XML-коде показано, как добавить обработчик маркеров SWT в коллекцию обработчиков маркеров.

<system.identityModel>
  <identityConfiguration saveBootstrapContext="true">
    <issuerTokenResolver type="SimpleWebToken.CustomIssuerTokenResolver, SimpleWebToken">
      <AddAudienceKeyPair  symmetricKey="wAVkldQiFypTQ+kdNdGWCYCHRcee8XmXxOvgmak8vSY=" audience="http://localhost:19851/" />
    </issuerTokenResolver>
    <issuerNameRegistry type="RelyingParty.TrustedIssuerNameRegistry, RelyingParty"/>
    <audienceUris>
      <add value="http://localhost:19851/"/>
    </audienceUris>
    <securityTokenHandlers>
      <add type="SimpleWebToken.SimpleWebTokenHandler, SimpleWebToken" />
    </securityTokenHandlers>
  </identityConfiguration>
</system.identityModel>

Комментарии

Класс SecurityTokenHandler является базовым классом, от которого наследуются все обработчики маркеров безопасности. Обработчик маркеров безопасности отвечает за:

  • Проверка маркеров безопасности (SecurityToken) типа, предназначенного для обработки и упаковки утверждений, содержащихся в маркере, в ClaimsIdentity объект .

  • Сериализация и десериализация маркеров безопасности типа, для обработки.

  • Сериализация и десериализация предложений идентификаторов ключей (SecurityKeyIdentifierClause), ссылающихся на токены типа , предназначенного для обработки элементов и из <wsse:SecurityTokenReference> элементов.

  • Создание маркеров безопасности из объекта, SecurityTokenDescriptor передаваемого реализациями SecurityTokenService класса .

  • Создание предложений идентификатора ключа из маркера безопасности для реализаций SecurityTokenService класса .

Windows Identity Foundation (WIF) поставляет следующие обработчики маркеров безопасности из коробки:

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

Обработчик маркеров безопасности можно добавить или удалить из коллекции обработчиков маркеров, указав <элементы add>, <remove> или <clear> в элементе< securityTokenHandlers> в файле конфигурации. Объект SecurityTokenHandlerConfiguration , содержащий параметры конфигурации для коллекции обработчиков, можно получить через Configuration свойство , а коллекцию обработчиков, в которую входит обработчик маркеров, можно получить из ContainingCollection свойства . Вы можете переопределить LoadCustomConfiguration метод для обработки любых пользовательских элементов конфигурации, которые принимает обработчик.

Класс SecurityTokenHandler предоставляет несколько других свойств и методов. В зависимости от функциональности, которую вы решили реализовать, вы можете переопределить некоторые или все из этих элементов.

Необходимо переопределить TokenType свойство и метод , чтобы предоставить инфраструктуре GetTokenTypeIdentifiers WIF сведения о типе маркера безопасности, который предназначен для обработки класса.

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

Методы CreateToken и CreateSecurityTokenReference вызываются из конвейера в реализациях SecurityTokenService класса .

Метод DetectReplayedToken вызывается инфраструктурой WIF, чтобы определить, был ли уже получен указанный маркер. По умолчанию этот метод возвращает falseзначение , указывающее, что маркер еще не получен. Вы можете переопределить метод и предоставить логику для обнаружения воспроизведенных маркеров.

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

SecurityTokenHandler()

Вызывается из конструкторов в производных классах для инициализации класса SecurityTokenHandler.

Свойства

CanValidateToken

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

CanWriteToken

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

Configuration

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

ContainingCollection

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

TokenType

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

Методы

CanReadKeyIdentifierClause(XmlReader)

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

CanReadToken(String)

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

CanReadToken(XmlReader)

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

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

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

CreateSecurityTokenReference(SecurityToken, Boolean)

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

CreateToken(SecurityTokenDescriptor)

При переопределении в производном классе создает токен безопасности с помощью заданного дескриптора токена. Этот метод вызывается службой токенов безопасности (STS).

DetectReplayedToken(SecurityToken)

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

Equals(Object)

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

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

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

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

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

GetType()

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

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

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

MemberwiseClone()

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

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

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

ReadToken(String)

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

ReadToken(XmlReader)

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

ReadToken(XmlReader, SecurityTokenResolver)

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

ToString()

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

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

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

TraceTokenValidationSuccess(SecurityToken)

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

ValidateToken(SecurityToken)

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

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

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

WriteToken(SecurityToken)

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

WriteToken(XmlWriter, SecurityToken)

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

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

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