RpcBindingSetAuthInfoA 函式 (rpcdce.h)
RpcBindingSetAuthInfo 函式會設定系結句柄的驗證和授權資訊。
語法
RPC_STATUS RpcBindingSetAuthInfoA(
RPC_BINDING_HANDLE Binding,
RPC_CSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc
);
參數
Binding
要套用驗證和授權資訊的伺服器系結句柄。
ServerPrincName
Binding 所參考之伺服器之預期主體名稱的指標。 名稱和其語法的內容是由使用中的驗證服務所定義。
AuthnLevel
在使用
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 結構。
當您選取RPC_C_AUTHN_GSS_SCHANNEL驗證服務時,AuthIdentity 參數應該是 SCHANNEL_CRED 結構的指標(定義於 Schannel.h 中)。 指定 Null 值,以使用目前位址空間的安全性登入內容。 傳遞值RPC_C_NO_CREDENTIALS以使用匿名登入內容。
AuthzSvc
伺服器針對感興趣的介面所實作的授權服務。 請參閱附注。
授權數據的有效性和可信度,就像任何應用程式數據一樣,取決於選取的驗證服務和驗證層級。 使用 RPC_C_AUTHN_WINNT 驗證服務時,會忽略此參數。
傳回值
價值 | 意義 |
---|---|
|
呼叫成功。 |
|
系結句柄無效。 |
|
這是作業的錯誤系結類型。 |
|
未知的驗證服務。 |
言論
用戶端應用程式會呼叫 RpcBindingSetAuthInfo 函式,以設定伺服器系結句柄,以進行已驗證的遠端過程調用。 不需要用戶端才能呼叫此函式。
除非用戶端呼叫 RpcBindingSetAuthInfo,否則不會驗證 系結 句柄上的遠端過程調用。 伺服器可以從遠端過程調用中呼叫 RpcBindingInqAuthClient,以判斷該呼叫是否已通過驗證。
RpcBindingSetAuthInfo 函式會擷取認證的快照集。 因此,在系結句柄之前,可以釋放專用於 AuthIdentity 參數的記憶體。
由於不同版本的 Microsoft RPC 需求不同,Microsoft建議應用程式只要繫結句柄存在,就維護 AuthIdentity 參數的指標。 這樣做會增加應用程式的可移植性。
WINDOWS Server 2003 SP1 和 Windows XP sp2:Windows XP SP2 和 Windows Server 2003 SP1,則系結句柄生命週期不需要維護 AuthIdentity 參數的指標。 只有在後續呼叫 rpcBindingInqAuthInfo 或 RpcBindingInqAuthInfoEx 時,才能維護此指標。
注意
rpcdce.h 標頭會根據 UNICODE 預處理器常數的定義,將 RpcBindingSetAuthInfo 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平臺 | 窗戶 |
標頭 | rpcdce.h (包括 Rpc.h) |
連結庫 | Rpcrt4.lib |
DLL | Rpcrt4.dll |