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 сведения о типе маркера безопасности, предназначенного для обработки.
Функции проверки, сериализации и десериализации предоставляются с помощью свойств или методов, указывающих, может ли обработчик выполнять определенную функцию в сочетании с методом или методами, реализующими функциональные возможности. Следующий список связывает свойства или методы, указывающие на функциональные возможности с методами, реализующими эту функциональность:
Свойство CanValidateToken и метод ValidateToken: проверяет маркер и упаковает утверждения, содержащиеся в маркере, в ClaimsIdentity.
Свойство CanWriteToken и методы WriteToken: сериализация маркеров.
Методы CanReadToken и методы ReadToken: десериализация маркеров.
Метод CanReadKeyIdentifierClause и метод ReadKeyIdentifierClause: предложения идентификатора ключа десериализации.
Метод CanWriteKeyIdentifierClause и метод WriteKeyIdentifierClause: сериализация предложений идентификатора ключа.
Методы 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. Маркер должен иметь тип, обработанный производным классом. |