共用方式為


RpcBindingSetAuthInfoExA 函式 (rpcdce.h)

RpcBindingSetAuthInfoEx 函式會設定系結句柄的驗證、授權和安全性服務質量資訊。

語法

RPC_STATUS RpcBindingSetAuthInfoExA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc,
  RPC_SECURITY_QOS         *SecurityQos
);

參數

Binding

設定驗證和授權資訊的伺服器系結句柄。

ServerPrincName

Binding 所參考之伺服器之預期主體名稱的指標。 名稱和其語法的內容是由使用中的驗證服務所定義。

注意 針對 SSP 允許的目標名稱集,請參閱 InitializeSecurityContext 檔中的批注。
 

AuthnLevel

在使用 系結進行遠端過程調用時,要執行的驗證層級。 如需 RPC 支援的驗證層級清單,請參閱 Authentication-Level 常數

AuthnSvc

要使用的驗證服務。

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

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

AuthIdentity

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

使用 RPC_C_AUTHN_WINNT 驗證服務時,AuthIdentity 應該是 SEC_WINNT_AUTH_IDENTITY 結構的指標(定義於 Rpcdce.h 中)。 Kerberos 和 Negotiate 驗證服務也會使用 SEC_WINNT_AUTH_IDENTITY 結構。

指定 Null 值,以使用目前位址空間的安全性登入內容。 傳遞值RPC_C_NO_CREDENTIALS以使用匿名登入內容。 請注意,只有在選取RPC_C_AUTHN_GSS_SCHANNEL做為驗證服務時,RPC_C_NO_CREDENTIALS才有效。

AuthzSvc

伺服器針對感興趣的介面所實作的授權服務。 授權數據的有效性和可信度,就像任何應用程式數據一樣,取決於選取的驗證服務和驗證層級。 使用 RPC_C_AUTHN_WINNT 驗證服務時,會忽略此參數。 請參閱附注。

SecurityQos

定義安全性服務品質之 RPC_SECURITY_QOS 結構的指標。

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

傳回值

價值 意義
RPC_S_OK
呼叫成功。
RPC_S_INVALID_BINDING
系結句柄無效。
RPC_S_WRONG_KIND_OF_BINDING
這是作業的錯誤系結類型。
RPC_S_UNKNOWN_AUTHN_SERVICE
未知的驗證服務。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

言論

用戶端應用程式會呼叫 RpcBindingSetAuthInfoEx 函式,以設定伺服器系結句柄,以進行已驗證的遠端過程調用。 此函式提供在系結句柄上設定安全性服務品質資訊的功能。 否則,它與 RpcBindingSetAuthInfo相同。

除非用戶端呼叫 RpcBindingSetAuthInfoEx,否則 Binding 上的所有遠端過程調用都會未經驗證。 不需要用戶端才能呼叫此函式。

RpcBindingSetAuthInfoEx 函式會擷取認證的快照集。 因此,在系結句柄之前,可以釋放專用於 AuthIdentity 參數的記憶體。 例外狀況是您的應用程式使用 RpcBindingSetAuthInfoEx 搭配 RPC_C_QOS_IDENTITY_DYNAMIC,並針對 AuthIdentity指定非NULL 值。

注意 在相同句柄上的 RPC 呼叫進行時,不得在系結句柄上呼叫 rpcBindingSetAuthInfo 函式。 這樣做會產生未定義的結果。
 
由於不同版本的 Microsoft RPC 需求不同,Microsoft建議只要繫結句柄存在,應用程式就會維護 AuthIdentity 參數的指標。 這樣做會增加應用程式的可移植性。

WINDOWS Server 2003 SP1 和 Windows XP sp2:Windows XP SP2 和 Windows Server 2003 SP1,則系結句柄生命週期不需要維護 AuthIdentity 參數的指標。 只有在後續呼叫 rpcBindingInqAuthInfo RpcBindingInqAuthInfoEx 時,才能維護此指標。

附注ncalrpc 通訊協定序列僅支援RPC_C_AUTHN_WINNT,但支援相互驗證:透過 SecurityQOS 參數提供 SPN 並要求相互驗證,以達成此目的。
 

注意

rpcdce.h 標頭會根據 UNICODE 預處理器常數的定義,將 RpcBindingSetAuthInfoEx 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 rpcdce.h (包括 Rpc.h)
連結庫 Rpcrt4.lib
DLL Rpcrt4.dll

另請參閱

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo