SessionSecurityToken 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义包含数据与会话相关的安全标记。
public ref class SessionSecurityToken : System::IdentityModel::Tokens::SecurityToken, System::Runtime::Serialization::ISerializable
[System.Serializable]
public class SessionSecurityToken : System.IdentityModel.Tokens.SecurityToken, System.Runtime.Serialization.ISerializable
[<System.Serializable>]
type SessionSecurityToken = class
inherit SecurityToken
interface ISerializable
Public Class SessionSecurityToken
Inherits SecurityToken
Implements ISerializable
- 继承
- 属性
- 实现
注解
会话令牌存储 ClaimsPrincipal 与会话关联的用户的 ,以及定义会话的其他参数;例如会话开始时间和结束时间。
在被动方案中, WSFederationAuthenticationModule 从身份验证管道调用 SessionAuthenticationModule (SAM) ,以从 ClaimsPrincipal 表示经过身份验证的用户的 创建会话令牌。 SAM 使用其配置 SessionSecurityTokenHandler 来创建令牌并将其序列化为 cookie (,并在后续请求) 从 Cookie 反序列化令牌。 SAM 使用其配置 CookieHandler 类的实例将 Cookie 写回到 HTTP 响应。 然后,此 Cookie 将返回到客户端,在后续请求中,客户端可以提供 Cookie,而不是往返于标识提供者以重新获取安全令牌。 有关会话如何使用 WIF 运行的详细信息,请参阅 WIF 会话管理。 有关在 Web 场方案中使用会话的信息,请参阅 WIF 和 Web 场。
会话令牌可以在引用模式下运行,也可以不以引用模式运行。 如果会话令牌未在引用模式下运行,则整个令牌将序列化为存储在客户端上的会话 Cookie。 序列化的会话令牌可能非常大,因此存储在客户端上的 Cookie 也可以相当大。 在引用模式下,令牌不是将整个会话令牌序列化到 Cookie 中,而是存储在会话安全令牌缓存中,并且只有用于生成从缓存中检索令牌所需的密钥的信息存储在 Cookie 中。 这可以大大减少 Cookie 的大小。 会话令牌缓存由派生自 SessionSecurityTokenCache 的类实现,缓存密钥由 SessionSecurityTokenCacheKey 类实现。 和 ContextIdKeyGeneration 属性在 类中 SessionSecurityTokenCacheKey 用于生成缓存密钥。
属性 IsReferenceMode 确定会话令牌是否处于引用模式。
重要
若要在引用模式下运行,Microsoft 建议在 global.asax.cs 文件中为 WSFederationAuthenticationModule.SessionSecurityTokenCreated 事件提供处理程序,并在 属性中传递的令牌上设置 IsReferenceMode 属性 SessionSecurityTokenCreatedEventArgs.SessionToken 。 这将确保会话令牌在每个请求的引用模式下运行,并且优先于仅在会话身份验证模块上设置 SessionAuthenticationModule.IsReferenceMode 属性。
SessionSecurityTokenHandler WIF 随附的类将会话令牌序列化为 WS-Secure Conversation <wsc:SecurityContextToken>
元素。
构造函数
属性
ClaimsPrincipal |
获取与此会话关联的声明主体。 |
Context |
获取用户指定上下文的值。 |
ContextId |
获取会话上下文标识符。 |
EndpointId |
获取限定此标识范围的终点 ID。 |
Id |
获取此标记的唯一标识符。 |
IsPersistent |
获取或设置指示是否保留此标记表示的 Cookie 的值。 |
IsReferenceMode |
获取或设置指示引用安全令牌是否在会话模式下运行的值。 |
KeyEffectiveTime |
获取此安全令牌有效的时间。 |
KeyExpirationTime |
获取此安全令牌失效之后的有效的时间。 |
KeyGeneration |
获取该标记中用于密钥生成的标识符。 |
SecureConversationVersion |
获取一个 URI,标识用于序列化此会话安全令牌的 WS 安全会话的版本。 |
SecurityKeys |
获取与此会话关联的键 。 这通常是一个唯一密钥。 |
ValidFrom |
获取此标记有效的时间。 |
ValidTo |
获取时间不再有效之后的有效的时间。 |
方法
CanCreateKeyIdentifierClause<T>() |
获取一个值,该值指示此安全令牌能否创建指定的密钥标识符。 (继承自 SecurityToken) |
CreateKeyIdentifierClause<T>() |
创建指定的密钥标识符子句。 (继承自 SecurityToken) |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
设置需要序列化会话安全标记的信息 SerializationInfo。 |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MatchesKeyIdentifierClause(SecurityKeyIdentifierClause) |
返回一个值,该值指示此实例的密钥标识符能否解析为指定的密钥标识符。 (继承自 SecurityToken) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ResolveKeyIdentifierClause(SecurityKeyIdentifierClause) |
为指定的密钥标识符子句获取密钥。 (继承自 SecurityToken) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |