RpcBindingSetAuthInfo 函式 (rpcdce.h)
RpcBindingSetAuthInfo函式會設定系結控制碼的驗證和授權資訊。
語法
RPC_STATUS RpcBindingSetAuthInfo(
RPC_BINDING_HANDLE Binding,
RPC_CSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc
);
參數
Binding
要套用驗證和授權資訊的伺服器系結控制碼。
ServerPrincName
系結所參考之伺服器的預期主體名稱指標。 名稱和其語法的內容是由使用中的驗證服務所定義。
AuthnLevel
要對使用 Binding進行遠端程序呼叫執行的驗證層級。 如需 RPC 支援的驗證層級清單,請參閱 驗證層級常數的清單。
AuthnSvc
要使用的驗證服務。 請參閱附註。
指定RPC_C_AUTHN_NONE,以關閉使用 Binding進行之遠端程序呼叫的驗證。
如果指定RPC_C_AUTHN_DEFAULT,RPC 執行時間程式庫會使用 RPC_C_AUTHN_WINNT 驗證服務來進行使用 Binding進行遠端程序呼叫。
AuthIdentity
處理結構,其中包含適用于所選驗證和授權服務的用戶端驗證和授權認證。使用 RPC_C_AUTHN_WINNT 驗證服務 AuthIdentity 時,應該是 Rpcdce.h) 中所定義 之SEC_WINNT_AUTH_IDENTITY (結構的指標。 Kerberos 和交涉驗證服務也會使用 SEC_WINNT_AUTH_IDENTITY 結構。
當您選取RPC_C_AUTHN_GSS_SCHANNEL驗證服務時, AuthIdentity 參數應該是 Schannel.h) 中定義的 SCHANNEL_CRED (結構指標。 指定 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 時,才能維護此指標。
需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |