MachineKeySessionSecurityTokenHandler 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用在配置文件中的 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
- 继承
示例
以下 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) |