SecurityTokenHandler Класс

Определение

Абстрактный базовый класс для обработчиков токенов безопасности.The abstract base class for security token handlers.

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.The code examples in all of the SecurityTokenHandler topics are taken from the Custom Token sample. Этот пример предоставляет пользовательские классы, которые позволяют обрабатывать простые веб-маркеры (SWT).This sample provides custom classes that enable processing of Simple Web Tokens (SWT). Сведения об этом образце и других примерах, доступных для WIF, и о том, где их можно скачать, см. в разделе индекс примера кода WIF.For information about this sample and other samples available for WIF and where to download them, see WIF Code Sample Index. В следующем коде XML показано, как добавить обработчик токенов SWT в коллекцию обработчиков маркеров.The following XML shows how to add the SWT token handler to the token handlers collection.

<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 является базовым классом, из которого наследуются все обработчики маркеров безопасности.The SecurityTokenHandler class is the base class from which all security token handlers derive. Обработчик маркеров безопасности отвечает за следующее:A security token handler is responsible for:

  • Проверка маркеров безопасности (SecurityToken) типа, предназначенного для обработки и упаковки утверждений, содержащихся в маркере, в объект ClaimsIdentity.Validating security tokens (SecurityToken) of the type it is designed to process and packaging the claims contained in the token into a ClaimsIdentity object.

  • Сериализация и десериализация маркеров безопасности типа, предназначенного для обработки.Serializing and deserializing security tokens of the type it is designed to process.

  • Сериализация и десериализация предложений идентификатора ключа (SecurityKeyIdentifierClause), которые ссылаются на токены типа, предназначенного для обработки в элементах <wsse:SecurityTokenReference> и из них.Serializing and deserializing key identifier clauses (SecurityKeyIdentifierClause) that refer to tokens of the type it is designed to process to and from <wsse:SecurityTokenReference> elements.

  • Создание маркеров безопасности из объекта SecurityTokenDescriptor, переданного реализациями класса SecurityTokenService.Creating security tokens from a SecurityTokenDescriptor object passed by implementations of the SecurityTokenService class.

  • Создание предложений идентификатора ключа из маркера безопасности для реализации класса SecurityTokenService.Creating key identifier clauses from a security token for implementations of the SecurityTokenService class.

Windows Identity Foundation (WIF) поставляется со следующими обработчиками маркеров безопасности:Windows Identity Foundation (WIF) ships the following security token handlers out of the box:

Большинство из этих классов предоставляют дополнительные члены, которые реализуют функциональные возможности, характерные для обработки маркеров, для которых предназначен класс.Most of these classes expose additional members that implement functionality that is specific to the processing of the tokens for which the class is designed. Во многих случаях может быть лучше наследовать от одного из этих классов, а не непосредственно от класса SecurityTokenHandler.In many cases it may be better to derive from one of these classes rather than directly from the SecurityTokenHandler class.

Обработчик маркеров безопасности можно добавить или удалить из коллекции обработчиков маркеров, указав <добавить>, <удалить>или <очистить> в элементе <securityTokenHandlers> в файле конфигурации.A security token handler can be added or removed from a token handler collection by specifying the <add>, <remove>, or <clear> elements under the <securityTokenHandlers> element in a configuration file. Доступ к объекту SecurityTokenHandlerConfiguration, содержащему параметры конфигурации для коллекции обработчиков, можно получить с помощью свойства Configuration и коллекции обработчиков, членом которой является обработчик маркера, можно получить из свойства ContainingCollection.The SecurityTokenHandlerConfiguration object that contains the configuration settings for the handler collection can be accessed through the Configuration property and the handler collection that the token handler is a member of can be accessed from the ContainingCollection property. Можно переопределить метод LoadCustomConfiguration для обработки любых пользовательских элементов конфигурации, принимаемых обработчиком.You can override the LoadCustomConfiguration method to process any custom configuration elements that your handler takes.

Класс SecurityTokenHandler предоставляет несколько других свойств и методов.The SecurityTokenHandler class exposes several other properties and methods. В зависимости от функциональности, которую вы выбираете для реализации, можно переопределить некоторые или все эти члены.Depending on the functionality that you choose to implement, you may override some or all of these members.

Необходимо переопределить свойство TokenType и метод GetTokenTypeIdentifiers, чтобы предоставить инфраструктуре WIF сведения о типе маркера безопасности, для обработки которого предназначен класс.You must override the TokenType property and the GetTokenTypeIdentifiers method to provide the WIF infrastructure with information about the type of security token that your class is designed to process.

Функции проверки, сериализации и десериализации предоставляются через свойства или методы, которые указывают, может ли обработчик выполнять определенную функцию в сочетании с методом или методами, реализующими эту функциональность.Validation, serialization, and deserialization functionality is exposed through properties or methods that indicate whether the handler can perform a specific function combined with the method or methods that implement the functionality. В следующем списке применяются пары свойств или методов, которые указывают функциональность с помощью методов, реализующих эту функцию:The following list pairs the properties or methods that indicate functionality with the methods that implement that functionality:

Методы CreateToken и CreateSecurityTokenReference вызываются из конвейера в реализациях класса SecurityTokenService.The CreateToken and the CreateSecurityTokenReference methods are called from the pipeline in implementations of the SecurityTokenService class.

Метод DetectReplayedToken вызывается инфраструктурой WIF для определения того, был ли уже получен указанный токен.The DetectReplayedToken method is called by the WIF infrastructure to determine whether the specified token has already been received. По умолчанию этот метод возвращает false, что означает, что маркер еще не был получен.By default this method returns false, which indicates that the token has not already been received. Можно переопределить метод и предоставить логику для обнаружения воспроизводимых токенов.You can override the method and provide logic to detect replayed tokens.

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

SecurityTokenHandler()

Вызывается из конструкторов в производных классах для инициализации класса SecurityTokenHandler.Called from constructors in derived classes to initialize the SecurityTokenHandler class.

Свойства

CanValidateToken

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

CanWriteToken

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

Configuration

Получает или задает объект SecurityTokenHandlerConfiguration, который предоставляет конфигурацию для текущего экземпляра.Gets or sets the SecurityTokenHandlerConfiguration object that provides configuration for the current instance.

ContainingCollection

Получает коллекцию обработчиков токена, содержащую текущий экземпляр.Gets the token handler collection that contains the current instance.

TokenType

При переопределении в производном классе получает тип токена безопасности, обрабатываемого этим экземпляром.When overridden in a derived class, gets the type of the security token that is processed by this instance.

Методы

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.

CanReadToken(String)

Возвращает значение, показывающее, может ли указанная строка десериализоваться как токен типа, обработанного этим экземпляром.Returns a value that indicates whether the specified string can be deserialized as a token of the type processed by this instance.

CanReadToken(XmlReader)

Возвращает значение, указывающее, является ли элемент xml, на которое ссылается указанное средство чтения XML, считываемым, как токен типа, обрабатываемого этим экземпляром.Returns a value that indicates whether the XML element referenced by the specified XML reader can be read as a token of the type processed by this instance.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Возвращает значение, показывающее, может ли указанная конструкция идентификатора ключа быть сериализована этим экземпляром.Returns a value that indicates whether the specified key identifier clause can be serialized by this instance.

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).

CreateToken(SecurityTokenDescriptor)

При переопределении в производном классе создает токен безопасности с помощью заданного дескриптора токена.When overridden in a derived class, creates a security token using the specified token descriptor. Этот метод вызывается службой токенов безопасности (STS).This method is called by a security token service (STS).

DetectReplayedToken(SecurityToken)

При переопределении в производном классе вызывает исключение, если обнаруживается, что указанный токен используется повторно.When overridden in a derived class, throws an exception if the specified token is detected as being replayed.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

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

При переопределении в производном классе возвращает набор универсальных кодов ресурса (URI), которые используются в запросах для идентификации токена обрабатываемого этим классом типа.When overridden in a derived class, returns the set of URIs that are used in requests to identify a token of the type processed by the derived class.

GetType()

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

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

При переопределении в производном классе загружает пользовательскую конфигурацию из XML-кода.When overridden in a derived class, loads custom configuration from XML.

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.

ReadToken(String)

При переопределении в производном классе десериализует заданную строку в токен обрабатываемого этим производным классом типа.When overridden in a derived class, deserializes the specified string to a token of the type processed by the derived class.

ReadToken(XmlReader)

При переопределении в производном классе десериализует десериализует XML-код, на который имеется ссылка в указанном модуле чтения XML, в токен обрабатываемого этим производным классом типа.When overridden in a derived class, deserializes the XML referenced by the specified XML reader to a token of the type processed by the derived class.

ReadToken(XmlReader, SecurityTokenResolver)

При переопределении в производном классе десериализует XML-код, на который имеется ссылка в указанном модуле чтения XML, в токен, обрабатываемый производным классом, путем использования заданного сопоставителя токенов.When overridden in a derived class, deserializes the XML referenced by the specified XML reader to a token of the type processed by the derived class by using the specified token resolver.

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.

TraceTokenValidationSuccess(SecurityToken)

Трассирует успешную проверку событий токен безопасности, если трассировка включена.Traces the successful validation of security tokens event when tracing is enabled.

ValidateToken(SecurityToken)

При переопределении в производном классе проверяет указанный токен безопасности.When overridden in a derived class, validates the specified security token. Токен должен иметь тип, обрабатываемый производным классом.The token must be of the type processed by the derived class.

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.

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.

WriteToken(XmlWriter, SecurityToken)

При переопределении в производном классе сериализует указанный токен безопасности в формат XML.When overridden in a derived class, serializes the specified security token to XML. Токен должен иметь тип, обрабатываемый производным классом.The token must be of the type processed by the derived class.

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

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