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


Функция 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 для использования метода приобретения ключа шифрования по умолчанию. В этом случае служба проверки подлинности указывает поведение по умолчанию. Задайте для этого параметра значение NULL при использовании службы проверки подлинности RPC_C_AUTHN_WINNT.

Служба проверки подлинности 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка rpcdce.h (include Rpc.h)
библиотеки Rpcrt4.lib
DLL Rpcrt4.dll

См. также

RpcBindingSetAuthInfo