MachineKeySessionSecurityTokenHandler 类

定义

使用在配置文件中的 ASP.NET <machineKey> 元素中指定的签名和加密密钥处理会话令牌。

public ref class MachineKeySessionSecurityTokenHandler : System::IdentityModel::Tokens::SessionSecurityTokenHandler
public class MachineKeySessionSecurityTokenHandler : System.IdentityModel.Tokens.SessionSecurityTokenHandler
type MachineKeySessionSecurityTokenHandler = class
    inherit SessionSecurityTokenHandler
Public Class MachineKeySessionSecurityTokenHandler
Inherits SessionSecurityTokenHandler
继承
MachineKeySessionSecurityTokenHandler

示例

以下 XML 演示如何在配置中使用 ASP.NET <machineKey> 元素显式指定签名和加密密钥。 元素 <machineKey> 在配置文件的 元素下 <system.web> 指定。

<machineKey compatibilityMode="Framework45" decryptionKey="CC510D … 8925E6" validationKey="BEAC8 … 6A4B1DE" />  

以下 XML 显示如何添加 MachineKeySessionSecurityTokenHandler 到令牌处理程序集合。 默认值 SessionSecurityTokenHandler 首先从集合中删除。 令牌处理程序在 securityTokenHandlers> 元素下<配置。

<securityTokenHandlers>  
  <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />  
  <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />  
</securityTokenHandlers>  

注解

默认情况下, SessionSecurityTokenHandler 类使用 ProtectedDataCookieTransform 类,该类使用数据保护 API (DPAPI) 来保护会话令牌。 DPAPI 使用用户或计算机凭据提供保护并将关键数据存储在用户配置文件中。 这意味着无法在另一台计算机上验证或解密在一台计算机上签名和加密的会话令牌。

相比之下, MachineKeySessionSecurityTokenHandler 类使用 MachineKeyTransform 类,该类通过使用配置文件中的 元素中指定的 <machineKey> 加密材料来保护会话 Cookie 数据。 这意味着 (的密钥和会话令牌) 可以跨多台计算机使用。 在 Web 场中部署应用程序时,这一点尤其重要。 有关如何使用 Windows Identity Foundation 保护部署在 Web 场中的应用程序的详细信息,请参阅 WIF 和 Web 场

配置应用程序使用 MachineKeySessionSecurityTokenHandler,方法是将它添加到令牌处理程序集合。 如果此类处理程序存在,必须先从令牌处理程序集合中删除 SessionSecurityTokenHandler(或者任何派生自 SessionSecurityTokenHandler 类的处理程序)。 这是因为 MachineKeySessionSecurityTokenHandler 派生自 SessionSecurityTokenHandler 和 令牌处理程序集合不能包含任何给定类型的多个处理程序。

构造函数

MachineKeySessionSecurityTokenHandler()

初始化 MachineKeySessionSecurityTokenHandler 类的新实例。

MachineKeySessionSecurityTokenHandler(TimeSpan)

初始化 MachineKeySessionSecurityTokenHandler 类的新实例,该实例具有指定的默认标记。

属性

CanValidateToken

获取一个值,该值指示此处理程序是否支持对 SessionSecurityToken 类型的标记进行验证。

(继承自 SessionSecurityTokenHandler)
CanWriteToken

获取指示此处理程序能否写入 SessionSecurityToken 类型的标记的值。

(继承自 SessionSecurityTokenHandler)
Configuration

获取或设置提供配置当前实例的 SecurityTokenHandlerConfiguration 对象。

(继承自 SecurityTokenHandler)
ContainingCollection

获取包含当前实例的标记处理程序集合。

(继承自 SecurityTokenHandler)
CookieElementName

获取 Cookie 元素的名称。

(继承自 SessionSecurityTokenHandler)
CookieNamespace

获取 Cookie 元素的命名空间。

(继承自 SessionSecurityTokenHandler)
TokenLifetime

获取或设置标记生存期。

(继承自 SessionSecurityTokenHandler)
TokenType

获取此处理程序处理的标记的类型。

(继承自 SessionSecurityTokenHandler)
Transforms

获取要应用在 cookie 上的转换。

(继承自 SessionSecurityTokenHandler)

方法

ApplyTransforms(Byte[], Boolean)

Transforms 属性指定的转换应用于对指定 Cookie 进行编码或解码。

(继承自 SessionSecurityTokenHandler)
CanReadKeyIdentifierClause(XmlReader)

返回指示由指定 XML 读取器引用的 XML 元素是否为由此实例反序列化的关键标识符子句的值。

(继承自 SecurityTokenHandler)
CanReadToken(String)

返回指示指定字符串是否可以作为由此实例处理类型标记的反序列化的值。

(继承自 SecurityTokenHandler)
CanReadToken(XmlReader)

返回一个值,该值指示读取器是否放置于 <wsc:SecurityContextToken> 元素处。

(继承自 SessionSecurityTokenHandler)
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

返回指示指定的密钥标识符子句是否可以由此实例序列化的值。

(继承自 SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

当在派生类中重写,为该类处理的标记创建安全标记引用。 通常通过安全标记服务 (STS) 调用此方法。

(继承自 SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

创建基于指定声明主体和时间范围(在此时间范围内标记有效)的 SessionSecurityToken

(继承自 SessionSecurityTokenHandler)
CreateToken(SecurityTokenDescriptor)

创建基于指定标记描述符的安全令牌。

(继承自 SessionSecurityTokenHandler)
DetectReplayedToken(SecurityToken)

当在派生类中重写时,如果重播时标记删除,将引发异常。

(继承自 SecurityTokenHandler)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetTokenTypeIdentifiers()

获取由处理程序处理的标记类型的标记标识符 URI。

(继承自 SessionSecurityTokenHandler)
GetType()

获取当前实例的 Type

(继承自 Object)
LoadCustomConfiguration(XmlNodeList)

从 XML 加载自定义的配置。

(继承自 SessionSecurityTokenHandler)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ReadKeyIdentifierClause(XmlReader)

当在派生类中重写时,使用指定 XML 读取器将 XML 引用的反序列化为由该类处理的主要标志符子句。

(继承自 SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

通过使用指定的标记解析器从字节流读取 SessionSecurityToken

(继承自 SessionSecurityTokenHandler)
ReadToken(String)

当在派生类中重写时,由派生类反序列化类型处理的指定字符串。

(继承自 SecurityTokenHandler)
ReadToken(XmlReader)

使用指定的 XML 读取器读取 SessionSecurityToken

(继承自 SessionSecurityTokenHandler)
ReadToken(XmlReader, SecurityTokenResolver)

使用指定的 XML 读取器和标记解析程序读取 SessionSecurityToken

(继承自 SessionSecurityTokenHandler)
SetTransforms(IEnumerable<CookieTransform>)

设置要应用在 cookie 上的转换。

(继承自 SessionSecurityTokenHandler)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
TraceTokenValidationFailure(SecurityToken, String)

当启用跟踪时,在安全标记的验证过程跟踪失败事件。

(继承自 SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

当启用跟踪时,跟踪安全标记事件的成功验证。

(继承自 SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

确定与指定标记相关联的会话是否有效。 通过检查指定标记的 ValidFromValidTo 确定有效性。 如果该会话不再有效,则引发异常。

(继承自 SessionSecurityTokenHandler)
ValidateToken(SecurityToken)

验证指定的令牌并返回其声明。

(继承自 SessionSecurityTokenHandler)
ValidateToken(SessionSecurityToken, String)

验证指定的会话令牌并返回其声明。

(继承自 SessionSecurityTokenHandler)
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

在派生类中重写时,将密钥标识符子句序列化到 XML。 密钥标识符子句必须是派生类支持的类型。

(继承自 SecurityTokenHandler)
WriteToken(SecurityToken)

在派生类中重写时,将指定安全标记列化到字符串。 该标记必须是派生类处理的类型。

(继承自 SecurityTokenHandler)
WriteToken(SessionSecurityToken)

将指定令牌序列化为字节数组。

(继承自 SessionSecurityTokenHandler)
WriteToken(XmlWriter, SecurityToken)

使用指定 XML 编写器序列化指定令牌。

(继承自 SessionSecurityTokenHandler)

适用于

另请参阅