Поделиться через


Функция RpcServerRegisterAuthInfoA (rpcdce.h)

Функция 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 Arg Поведение во время выполнения
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 передает значение параметра ServerPrincName из RpcServerRegisterAuthInfo в качестве значения параметра ServerPrincName в функцию получения GetKeyFn . Библиотека времени выполнения RPC автоматически предоставляет значение параметра версии ключа (KeyVer). Для значения параметра KeyVer , равного нулю, функция получения должна возвращать последний доступный ключ. Функция извлечения возвращает ключ проверки подлинности в параметре Key .

Если функция получения, вызываемая из RpcServerRegisterAuthInfo , возвращает состояние, отличное от RPC_S_OK, то эта функция завершается ошибкой и возвращает код ошибки в серверное приложение. Если функция получения, вызываемая библиотекой времени выполнения RPC при проверке подлинности запроса удаленной процедуры клиента, возвращает состояние, отличное от RPC_S_OK, запрос завершается сбоем, а библиотека времени выполнения RPC возвращает клиентскому приложению код ошибки.

Arg

Указатель на параметр для передачи в подпрограмму GetKeyFn , если он указан. Этот параметр также можно использовать для передачи указателя на структуру SCHANNEL_CRED для указания явных учетных данных, если для службы проверки подлинности задано значение SCHANNEL.

Если параметр Arg имеет значение NULL, эта функция будет использовать сертификат или учетные данные по умолчанию, если они были настроены в службе каталогов.

Возвращаемое значение

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_UNKNOWN_AUTHN_SERVICE
Служба проверки подлинности неизвестна.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

Серверное приложение вызывает RpcServerRegisterAuthInfo для регистрации службы проверки подлинности для проверки подлинности удаленных вызовов процедур. Сервер вызывает эту подпрограмму один раз для каждой службы проверки подлинности, которую сервер хочет зарегистрировать. Если сервер вызывает эту функцию несколько раз для данной службы проверки подлинности, результаты будут неопределенными.

Служба проверки подлинности, указанная клиентским приложением (с помощью RpcBindingSetAuthInfo или RpcServerRegisterAuthInfo), должна быть одной из служб проверки подлинности, указанных серверным приложением. В противном случае удаленный вызов процедуры клиента завершается сбоем и возвращается код состояния RPC_S_UNKNOWN_AUTHN_SERVICE.

Примечание

Заголовок rpcdce.h определяет RpcServerRegisterAuthInfo в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header rpcdce.h (включая Rpc.h)
Библиотека Rpcrt4.lib
DLL Rpcrt4.dll

См. также раздел

RpcBindingSetAuthInfo