RpcServerRegisterAuthInfo 函式會向 RPC 運行時間連結庫註冊驗證資訊。
語法
RPC_STATUS RpcServerRegisterAuthInfoA(
RPC_CSTR ServerPrincName,
unsigned long AuthnSvc,
RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
void *Arg
);
參數
ServerPrincName
使用 AuthnSvc 參數所指定的服務驗證遠端過程調用時,要用於伺服器的主體名稱指標。 名稱和其語法的內容是由使用中的驗證服務所定義。 如需詳細資訊,請參閱 主體名稱。
AuthnSvc
當伺服器收到遠端過程調用的要求時,要使用的驗證服務。
GetKeyFn
傳回加密金鑰的伺服器應用程式提供例程位址。 請參閱 RPC_AUTH_KEY_RETRIEVAL_FN。
指定 NULL 參數值,以使用加密密鑰擷取的預設方法。 在此情況下,驗證服務會指定預設行為。 使用RPC_C_AUTHN_WINNT驗證服務時,將此參數設定為 NULL。
| 驗證服務 | GetKeyFn | 精 氨 酸 | 運行時間行為 |
|---|---|---|---|
| RPC_C_AUTHN_DPA | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_GSS_KERBEROS | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_GSS_NEGOTIATE | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_GSS_SCHANNEL | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_MQ | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_MSN | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_WINNT | 忽視 | 忽視 | 不支援 |
| RPC_C_AUTHN_DCE_PRIVATE | NULL | 非null | 使用從指定的金鑰數據表取得加密金鑰的預設方法;指定的自變數會傳遞至預設的擷取函式。 |
| RPC_C_AUTHN_DCE_PRIVATE | 非null | NULL | 使用指定的加密金鑰擷取函式,從預設密鑰數據表取得金鑰。 |
| RPC_C_AUTHN_DCE_PRIVATE | 非null | 非null | 使用指定的加密金鑰擷取函式,從指定的密鑰數據表取得金鑰;指定的自變數會傳遞至 acquisition 函式。 |
| RPC_C_AUTHN_DEC_PUBLIC | 忽視 | 忽視 | 保留供日後使用。 |
RPC 運行時間連結庫會將 ServerPrincName 參數值從 RpcServerRegisterAuthInfo 傳遞為 ServerPrincName 參數值,以 GetKeyFn 取得函式。 RPC 執行時間連結庫會自動提供金鑰版本的值(KeyVer) 參數。 若為 KeyVer 參數值為零,則下載函式必須傳回最新的可用索引鍵。 擷取函式會傳回 Key 參數中的驗證密鑰。
如果從 RpcServerRegisterAuthInfo 呼叫的下載函式 傳回RPC_S_OK以外的狀態,則此函式會失敗,並將錯誤碼傳回伺服器應用程式。 如果在驗證用戶端遠端過程調用要求時由 RPC 執行時間連結庫話叫的下載函式傳回RPC_S_OK以外的狀態,要求會失敗,而 RPC 執行時間連結庫會將錯誤碼傳回用戶端應用程式。
Arg
如果指定的話,要傳遞至 GetKeyFn 例程的參數指標。 如果驗證服務設定為 SCHANNEL,此參數也可用來將指標傳遞至 SCHANNEL_CRED 結構,以指定明確的認證。
如果 Arg 參數設定為 NULL,則此函式會在目錄服務中設定時使用預設憑證或認證。
傳回值
| 價值 | 意義 |
|---|---|
|
呼叫成功。 |
|
驗證服務未知。 |
言論
伺服器應用程式會呼叫 RpcServerRegisterAuthInfo 註冊驗證服務,以用來驗證遠端過程調用。 伺服器會針對伺服器想要註冊的每個驗證服務呼叫此例程一次。 如果伺服器針對指定的驗證服務多次呼叫此函式,則結果為未定義。
用戶端應用程式指定的驗證服務(使用 RpcBindingSetAuthInfo 或 RpcServerRegisterAuthInfo)必須是伺服器應用程式指定的其中一個驗證服務。 否則,客戶端的遠端過程調用會失敗,並傳回RPC_S_UNKNOWN_AUTHN_SERVICE狀態代碼。
注意
rpcdce.h 標頭會根據 UNICODE 預處理器常數的定義,將 RpcServerRegisterAuthInfo 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
| 要求 | 價值 |
|---|---|
| 最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| 標頭 | rpcdce.h (包括 Rpc.h) |
| 連結庫 | Rpcrt4.lib |
| DLL | Rpcrt4.dll |