在介面 Proxy 層級設定安全性

有時候用戶端需要對特定介面呼叫的安全性進行更細緻的控制。 例如,安全性可能會設定為處理程式的低層級,但對特定介面的呼叫可能需要較高的驗證層級,例如加密。 IClientSecurity 介面的方法可讓用戶端藉由控制介面 Proxy 層級的安全性設定,來變更與特定介面呼叫相關聯的安全性設定。

用戶端可以查詢 IClientSecurity 的現有物件,然後呼叫 IClientSecurity::QueryBlanket 方法來找出特定介面 Proxy 目前的安全性設定為何。 IClientSecurity::SetBlanket 方法可用來修改對象上個別介面 Proxy 的安全性設定,然後再呼叫其中一個介面的方法。 新的設定會套用至這個特定介面的任何未來呼叫端。 IClientSecurity::CopyProxy 方法可讓用戶端複製介面 Proxy,讓複製上的 SetBlanket 後續呼叫不會影響原始 Proxy 的呼叫者。

SetBlanket 通常用來將特定介面 Proxy 的驗證層級提升為較高層級的安全性保護。 不過,在某些情況下,降低特定介面 Proxy 的驗證層級可能也很有説明。 例如,假設進程的預設驗證層級是RPC_C_AUTHN_LEVEL_NONE以外的一些值,而用戶端和伺服器位於不信任彼此的個別網域中。 在此情況下,除非用戶端呼叫 SetBlanket 將驗證層級降低為 RPC_C_AUTHN_LEVEL_NONE,否則對伺服器的呼叫將會失敗。

使用 Proxy 管理員所提供之 IClientSecurity 預設實作的用戶端可以呼叫 CoQueryProxyBlanket、CoSetProxyBlanket CoCopyProxy 協助程式函式,而不是直接呼叫 IClientSecurity 方法。 協助程式函式會簡化程序代碼,但效率略低於直接呼叫對應的 IClientSecurity 方法。

Proxy 管理員會在本機為客戶端實作 IClientSecurity 介面。 某些自定義封送處理的物件可能不支援 IClientSecurity

IClientSecurity 適用於所有支持的驗證服務(目前 NTLMSSP、Schannel 和 Kerberos v5 通訊協定)。

設定 COM 應用程式的安全性