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


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. В следующем 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.

Обработчик маркеров безопасности можно добавить или удалить из коллекции обработчика маркеров, указав <добавить>, <удалить>или <очистить элементы> в элемент <е 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, SecurityTokenResolver)

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

ReadToken(XmlReader)

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

ToString()

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

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

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

TraceTokenValidationSuccess(SecurityToken)

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

ValidateToken(SecurityToken)

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

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

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

WriteToken(SecurityToken)

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

WriteToken(XmlWriter, SecurityToken)

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

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

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