RpcServerRegisterAuthInfo 函式 (rpcdce.h)
RpcServerRegisterAuthInfo 函式會向 RPC 運行時間連結庫註冊驗證資訊。
語法
RPC_STATUS RpcServerRegisterAuthInfo(
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 | 使用指定的加密金鑰擷取函式,從指定的密鑰數據表取得金鑰;指定的自變數會傳遞至擷取函式。 |
RPC_C_AUTHN_DEC_PUBLIC | 忽略 | 忽略 | 保留供未來使用。 |
RPC 運行時間連結庫會將來自 RpcServerRegisterAuthInfo 的 ServerPrincName 參數值當做 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狀態代碼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |