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 。 ContextId和 KeyGeneration 屬性會用於 類別中 SessionSecurityTokenCacheKey ,以產生快取索引鍵。
屬性 IsReferenceMode 會判斷會話權杖是否處於參考模式。
重要
為了在參考模式中運作,Microsoft 建議在 global.asax.cs 檔案中提供 事件的處理常式 WSFederationAuthenticationModule.SessionSecurityTokenCreated ,並在傳入屬性的 SessionSecurityTokenCreatedEventArgs.SessionToken 權杖上設定 IsReferenceMode 屬性。 這可確保會話權杖會在每個要求的參考模式中運作,並且偏好只 SessionAuthenticationModule.IsReferenceMode 設定會話驗證模組上的 屬性。
SessionSecurityTokenHandlerWIF 提供的 類別會將會話權杖序列化為WS-Secure Conversation <wsc:SecurityContextToken>
元素。
建構函式
屬性
ClaimsPrincipal |
取得與工作階段相關聯的宣告主體。 |
Context |
取得使用者指定的內容值。 |
ContextId |
取得工作階段內容識別碼。 |
EndpointId |
取得此語彙基元的範圍結束點的 ID。 |
Id |
取得此權杖的唯一識別碼。 |
IsPersistent |
取得或設定值,這個值表示這個權杖所表示的 cookie 是否為持續性的。 |
IsReferenceMode |
取得或設定值,指出工作階段安全性權杖是否正在參考模式下操作。 |
KeyEffectiveTime |
取得權杖中的金鑰開始有效的瞬間。 |
KeyExpirationTime |
取得瞬間,超過之後這個權杖中的金鑰不再有效。 |
KeyGeneration |
取得此權杖中產生金鑰的識別碼。 |
SecureConversationVersion |
取得可識別 WS-Secure Conversation 版本的 URI,該 WS-Secure Conversation 用於序列化這個工作階段安全性權杖。 |
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) |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應