Функция 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, эта функция будет использовать сертификат или учетные данные по умолчанию, если они были настроены в службе каталогов.
Возвращаемое значение
Значение | Значение |
---|---|
|
Вызов выполнен успешно. |
|
Служба проверки подлинности неизвестна. |
Комментарии
Серверное приложение вызывает 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по