共用方式為


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 類別會使用使用數據保護 API (DPAPI) 的 ProtectedDataCookieTransform 類別來保護會話令牌。 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, SecurityTokenResolver)

使用指定的 XML 讀取器和令牌解析程式讀取 SessionSecurityToken

(繼承來源 SessionSecurityTokenHandler)
ReadToken(XmlReader)

使用指定的 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)

適用於

另請參閱