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
示例。 此示例提供自定义类,这些类支持 (SWT) 处理简单 Web 令牌。 有关此示例和其他可用于 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> 元素下<指定 <add>、<remove> 或 <clear> 元素,可以在令牌处理程序集合中添加或删除安全令牌处理程序。 SecurityTokenHandlerConfiguration可以通过 属性访问包含处理程序集合配置设置的 对象,也可以从 ConfigurationContainingCollection 属性访问令牌处理程序所属的处理程序集合。 可以重写 方法以 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) |
当在派生类中重写时,使用指定 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。 该标记必须是派生类处理的类型。 |