SessionSecurityToken 类

定义

定义包含数据与会话相关的安全标记。

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
继承
SessionSecurityToken
属性
实现

注解

会话令牌存储 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 建议为 WSFederationAuthenticationModule.SessionSecurityTokenCreated global.asax.cs 文件中的事件提供处理程序, IsReferenceMode 并在 属性中传递的令牌上设置 属性 SessionSecurityTokenCreatedEventArgs.SessionToken 。 这将确保会话令牌在每个请求的引用模式下运行,并且优先于仅在会话身份验证模块上设置 SessionAuthenticationModule.IsReferenceMode 属性。

SessionSecurityTokenHandler WIF 随附的类将会话令牌序列化为WS-Secure Conversation <wsc:SecurityContextToken> 元素。

构造函数

SessionSecurityToken(ClaimsPrincipal)

从指定的主体初始化 SessionSecurityToken 类的新实例。

SessionSecurityToken(ClaimsPrincipal, String)

用指定的主体和启动令牌初始化 SessionSecurityToken 类的新实例。

SessionSecurityToken(ClaimsPrincipal, String, Nullable<DateTime>, Nullable<DateTime>)

用指定的主体和启动令牌,并结合指定的开始时间和过期时间来初始化 SessionSecurityToken 类的新实例。

SessionSecurityToken(ClaimsPrincipal, String, String, Nullable<DateTime>, Nullable<DateTime>)

用指定的主体和启动令牌,并结合指定的开始时间和过期时间来初始化 SessionSecurityToken 类的新实例。 限定范围为指定的终点的新的标识。

SessionSecurityToken(ClaimsPrincipal, TimeSpan)

从指定的主体初始化 SessionSecurityToken 类的新实例。 在指定生命期间从 UtcNow 开始是合法的新的标识。

SessionSecurityToken(ClaimsPrincipal, UniqueId, String, String, DateTime, TimeSpan, SymmetricSecurityKey)

使用指定的主体、上下文 ID、上下文、终结点、有效时间戳、生存期和密钥初始化 SessionSecurityToken 类的新实例。

SessionSecurityToken(ClaimsPrincipal, UniqueId, String, String, Nullable<DateTime>, Nullable<DateTime>, SymmetricSecurityKey)

使用指定的主体、上下文 ID、上下文、终结点、开始时间、过期时间和密钥初始化 SessionSecurityToken 类的新实例。

SessionSecurityToken(ClaimsPrincipal, UniqueId, String, String, TimeSpan, SymmetricSecurityKey)

使用指定的主体、上下文 ID、上下文、终结点、生存期和密钥初始化 SessionSecurityToken 类的新实例。

SessionSecurityToken(SerializationInfo, StreamingContext)

用序列化数据初始化 SessionSecurityToken 类的新实例。

属性

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)

适用于

另请参阅