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

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

注意 如需 SSP 的一組允許目標名稱,請參閱 InitializeSecurityCoNtext 檔中的批註。
 

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以使用匿名登入內容。

注意 選取RPC_C_AUTHN_GSS_SCHANNEL驗證服務時, AuthIdentity 參數也可能是 SCH_CRED 結構的指標。 不過,在 Windows XP 和更新版本的 Windows 中,傳遞為RPC_C_AUTHN_GSS_SCHANNEL驗證服務 之 AuthIdentity 參數的唯一可接受的結構是 SCHANNEL_CRED 結構。
 

AuthzSvc

伺服器針對感興趣的介面所實作的授權服務。 請參閱附註。

授權資料的有效性和信任性,就像任何應用程式資料一樣,取決於所選取的驗證服務和驗證層級。 使用RPC_C_AUTHN_WINNT驗證服務時,會忽略此參數。

注意 如需詳細資訊,請參閱 Authentication-Service 常數
 

傳回值

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

備註

用戶端應用程式會呼叫 RpcBindingSetAuthInfo 函式,以設定伺服器系結控制碼來進行已驗證的遠端程序呼叫。 不需要用戶端才能呼叫此函式。

除非用戶端呼叫 RpcBindingSetAuthInfo,否則 系結系 結控制碼上不會驗證任何遠端程序呼叫。 伺服器可以從遠端程序呼叫內呼叫 RpcBindingInqAuthClient ,以判斷該呼叫是否已通過驗證。

RpcBindingSetAuthInfo函式會擷取認證快照集。 因此, AuthIdentity 參數專用的記憶體可以在系結控制碼之前釋放。

由於不同版本的 Microsoft RPC 需求不同,Microsoft 建議只要系結控制碼存在,您的應用程式就會維護 AuthIdentity 參數的指標。 這麼做會增加應用程式的可攜性。

Windows Server 2003 SP1 和 Windows XP SP2: 針對 Windows XP SP2 和 Windows Server 2003 SP1,系結控制碼的存留期不需要維護 AuthIdentity 參數的指標。 只有在後續呼叫 RpcBindingInqAuthInfoRpcBindingInqAuthInfoEx 時,才能維護此指標。

注意RpcBindingSetAuthInfo函式不得在系結控制碼上呼叫,而相同控制碼上的 RPC 呼叫正在進行中。 這麼做會產生未定義的結果。
 

需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 rpcdce.h (包含 Rpc.h)
程式庫 Rpcrt4.lib
Dll Rpcrt4.dll

另請參閱

MSMQ 安全性服務

RpcBindingInqAuthInfo

RpcBindingSetOption

RpcServerRegisterAuthInfo