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 類別會使用使用數據保護 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) |