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


Функция 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 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.

Требования

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

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

RpcBindingSetAuthInfo