共用方式為


RPC_BINDING_HANDLE_SECURITY_V1_A結構 (rpcdce.h)

RPC_BINDING_HANDLE_SECURITY_V1 結構包含用來建立 RPC 系結句柄的基本安全性選項。

語法

typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
  unsigned long             Version;
  unsigned char             *ServerPrincName;
  unsigned long             AuthnLevel;
  unsigned long             AuthnSvc;
  SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
  RPC_SECURITY_QOS          *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;

成員

Version

這個結構的版本。 針對 RPC_BINDING_HANDLE_SECURITY_V1 ,這必須設定為1。

ServerPrincName

字串的指標,其中包含系結句柄所參考的伺服器主體名稱。 名稱和其語法的內容是由使用中的驗證服務所定義。

AuthnLevel

要在此系結句柄進行之遠程過程調用上執行的驗證層級。 如需 RPC 支援的驗證層級清單,請參閱 驗證層級常數

如果 AuthnSvc 設定為 RPC_C_AUTHN_NONE,則此成員也必須設定為 RPC_C_AUTHN_NONE。

AuthnSvc

系結時要使用的驗證服務。

指定RPC_C_AUTHN_NONE以關閉使用系結句柄進行的遠端過程調用驗證。

如果指定RPC_C_AUTHN_DEFAULT,RPC 運行時間連結庫會針對使用系結句柄進行的遠端過程調用使用RPC_C_AUTHN_WINNT驗證服務。

如果 AuthnLevel 設定為 RPC_C_AUTHN_NONE,則此成員也必須設定為 RPC_C_AUTHN_NONE。

AuthIdentity

SEC_WINNT_AUTH_IDENTITY 結構,其中包含適用於所選驗證和授權服務的客戶端驗證和授權認證。

SecurityQos

RPC_SECURITY_QOS 結構,其中包含系結句柄的安全性服務質量設定。

注意 如需 RPC 支援的驗證服務清單,請參閱 Authentication-Service 常數
 

備註

如果此結構未傳遞至 RpcBindingCreate -- 也就是說,如果 RpcBindingCreateSecurity 參數設定為 NULL,則會假設下列預設安全性行為:

  • 針對通訊協定序列 ncalrpc (本機 RPC) ,RPC 會使用傳輸層級安全性。 這表示 RPC 會使用 Windows 核心所提供的安全性機制來提供安全性,而且 RPC 將不會驗證伺服器,因為它使用目前的線程身分識別進行連線。 在此情況下,身分識別追蹤是靜態的,模擬類型會設定為 “Impersonate”,而驗證層級會設定為 “Privacy”。
  • 針對通訊協議順序ncacn_np,RPC也會使用傳輸層級安全性。 如果呼叫是遠端的,RPC 會使用 Windows 檔系統重新導向器所提供的安全性機制,而且沒有相互驗證。 在此情況下,身分識別是目前的線程身分識別、身分識別追蹤狀態為靜態、模擬類型設定為「模擬」,而驗證層級是由遠端計算機的原則所決定。

    如果呼叫是本機的,RPC 會使用命名管道文件系統所提供的安全性機制 (NPFS) ,而且也沒有任何相互驗證。 在此情況下,身分識別是目前的線程身分識別,或透過伺服器的 「net use」 命令所建立的任何身分識別。 身分識別追蹤狀態是動態的,模擬類型會設定為 “Impersonate”,而驗證層級會設定為 “Privacy”。

  • 針對通訊協定序列ncacn_ip_tcp,ncacn_ip_udp和ncacn_http, 當 Security 設定為 NULL 時不會使用任何安全性。 伺服器不會執行模擬,而且所有數據都會以純文本傳送。 若要提供數據的最大保護,應用程式必須一律提供安全性數據。

如果 RpcBindingCreate 的 Security 參數設定為 NULL,下表摘要說明不同通訊協定序列的預設安全性設定。

預設安全性設定 ncalrpc 本機ncacn_np remote ncacn_np ncacn_ip_tcp、ncacn_ip_udp和ncacn_http
安全性機制 Windows 核心 NPFS 檔系統重新導向器
驗證等級 隱私權 隱私權 伺服器原則相依
相互驗證? No No No No
模擬類型 Impersonate Impersonate Impersonate N/A
身分識別追蹤類型 靜態 動態 靜態 N/A
僅有效? N/A N/A
通話身分識別 目前的執行緒 目前的執行緒 目前的線程或「net use」設定 N/A
 
注意 如果您藉由呼叫 RpcBindingFromStringBinding API 來建立系結句柄,在沒有特定安全性設定的情況下,ncalrpc 的預設身分識別追蹤是動態的。

如果您藉由呼叫 RpcBindingCreate API 來建立快速系結句柄,在缺少特定安全性設定的情況下,ncalrpc 的預設身分識別追蹤是靜態的。

如果您要在應用程式中切換兩個 API,您應該注意這兩個 API 的差異。

建立系結句柄之後, 可以使用 RpcBindingSetAuthInfoRpcBindingSetAuthInfoEx API 來變更使用此結構所設定的系結句柄設定。

 

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 rpcdce.h (包含 Rpc.h)

另請參閱

RPC_BINDING_HANDLE

RpcBindingBind

RpcBindingCreate