SecurityTokenHandler 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
安全令牌处理程序的抽象基类。
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
示例。 此示例提供允许处理简单 Web 令牌(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 类是从中派生所有安全令牌处理程序的基类。 安全令牌处理程序负责:
验证它设计用于处理令牌中包含的声明并将其打包到 ClaimsIdentity 对象中的安全令牌(SecurityToken)。
序列化和反序列化其设计用于处理的类型的安全令牌。
序列化和反序列化密钥标识符子句(SecurityKeyIdentifierClause),这些子句引用其设计用于处理
<wsse:SecurityTokenReference>
元素的类型标记。从 SecurityTokenService 类的实现传递的 SecurityTokenDescriptor 对象创建安全令牌。
从安全令牌创建密钥标识符子句,以便实现 SecurityTokenService 类。
Windows Identity Foundation (WIF)现现提供以下安全令牌处理程序:
这些类中的大多数都公开了实现特定于处理该类的令牌的功能的其他成员。 在许多情况下,最好从其中一个类派生,而不是直接从 SecurityTokenHandler 类派生。
可以通过指定 <添加>、<删除>或 <<securityTokenHandlers> 元素下的> 元素来添加或删除安全令牌处理程序集合。 可以通过 Configuration 属性访问包含处理程序集合配置设置的 SecurityTokenHandlerConfiguration 对象,令牌处理程序是可从 ContainingCollection 属性访问的处理程序集合的成员。 可以重写 LoadCustomConfiguration 方法来处理处理程序采用的任何自定义配置元素。
SecurityTokenHandler 类公开其他几个属性和方法。 根据你选择实现的功能,你可以替代其中部分或全部成员。
必须重写 TokenType 属性和 GetTokenTypeIdentifiers 方法,以便为 WIF 基础结构提供有关类旨在处理的安全令牌类型的信息。
验证、序列化和反序列化功能通过属性或方法公开,这些属性或方法指示处理程序是否可以执行与实现该功能的方法或方法相结合的特定函数。 以下列表将指示功能的属性或方法与实现该功能的方法配对:
CanValidateToken 属性和 ValidateToken 方法:验证令牌并将令牌中包含的声明打包到 ClaimsIdentity中。
CanWriteToken 属性和 WriteToken 方法:令牌序列化。
CanReadToken 方法和 ReadToken 方法:令牌反序列化。
CanReadKeyIdentifierClause 方法和 ReadKeyIdentifierClause 方法:反序列化密钥标识符子句。
CanWriteKeyIdentifierClause 方法和 WriteKeyIdentifierClause 方法:序列化密钥标识符子句。
CreateToken 和 CreateSecurityTokenReference 方法从 SecurityTokenService 类的实现中的管道调用。
WIF 基础结构调用 DetectReplayedToken 方法,以确定是否已收到指定的令牌。 默认情况下,此方法返回 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。 令牌必须是派生类处理的类型。 |