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