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

Функция RpcBindingSetAuthInfoEx задает сведения о проверке подлинности, авторизации и безопасности дескриптора привязки.

Синтаксис

RPC_STATUS RpcBindingSetAuthInfoExA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc,
  RPC_SECURITY_QOS         *SecurityQos
);

Параметры

Binding

Дескриптор привязки сервера, в который задается информация о проверке подлинности и авторизации.

ServerPrincName

Указатель на ожидаемое имя субъекта сервера, на который ссылается привязка. Содержимое имени и его синтаксис определяются используемой службой проверки подлинности.

Примечание Набор допустимых целевых имен для SSP см. в комментариях в документации По InitializeSecurityContext .
 

AuthnLevel

Уровень проверки подлинности для удаленных вызовов процедур, выполняемых с помощью привязки. Список уровней проверки подлинности, поддерживаемых RPC, см. в разделе Константы уровня проверки подлинности.

AuthnSvc

Используемая служба проверки подлинности.

Укажите RPC_C_AUTHN_NONE, чтобы отключить проверку подлинности для удаленных вызовов процедур, выполненных с помощью привязки.

Если указан RPC_C_AUTHN_DEFAULT, библиотека среды выполнения RPC использует службу проверки подлинности RPC_C_AUTHN_WINNT для удаленных вызовов процедур, выполняемых с помощью привязки.

AuthIdentity

Дескриптор структуры, содержащей учетные данные для проверки подлинности и авторизации клиента, соответствующие выбранной службе проверки подлинности и авторизации.

При использовании RPC_C_AUTHN_WINNT служба проверки подлинности AuthIdentity должна быть указателем на структуру SEC_WINNT_AUTH_IDENTITY (определенную в Rpcdce.h). Службы проверки подлинности Kerberos и Negotiate также используют структуру SEC_WINNT_AUTH_IDENTITY .

Укажите значение NULL, чтобы использовать контекст входа безопасности для текущего адресного пространства. Передайте значение RPC_C_NO_CREDENTIALS для использования анонимного контекста входа. Обратите внимание, что RPC_C_NO_CREDENTIALS действителен только в том случае, если в качестве службы проверки подлинности выбран RPC_C_AUTHN_GSS_SCHANNEL.

AuthzSvc

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

SecurityQos

Указатель на структуру RPC_SECURITY_QOS , которая определяет качество обслуживания системы безопасности.

Примечание Список служб проверки подлинности, поддерживаемых RPC, см. в разделе Authentication-Service Constants.
 

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

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

Комментарии

Клиентское приложение вызывает функцию RpcBindingSetAuthInfoEx , чтобы настроить дескриптор привязки сервера для выполнения вызовов удаленных процедур, прошедших проверку подлинности. Эта функция предоставляет возможность задавать сведения о качестве обслуживания безопасности для дескриптора привязки. В противном случае он идентичен RpcBindingSetAuthInfo.

Если клиент не вызывает RpcBindingSetAuthInfoEx, все удаленные вызовы процедур в Binding не будут пройти проверку подлинности. Клиент не требуется для вызова этой функции.

Функция RpcBindingSetAuthInfoEx принимает snapshot учетных данных. Таким образом, память, выделенная для параметра AuthIdentity , может быть освобождена до дескриптора привязки. Исключением является то, что приложение использует RpcBindingSetAuthInfoEx с RPC_C_QOS_IDENTITY_DYNAMIC, а также задает значение, отличное от NULL , для AuthIdentity.

Примечание Функция RpcBindingSetAuthInfo не должна вызываться для дескриптора привязки во время выполнения вызова RPC с тем же дескриптором. Это приводит к неопределенным результатам.
 
Из-за различных требований к различным версиям Microsoft RPC корпорация Майкрософт рекомендует, чтобы приложение поддерживало указатель на параметр AuthIdentity до тех пор, пока существует дескриптор привязки. Это повышает переносимость приложений.

Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2): Для Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003 с пакетом обновления 1 (SP1) указатель на параметр AuthIdentity не должен поддерживаться в течение срока действия дескриптора привязки. Этот указатель должен поддерживаться только в том случае, если последующие вызовы RpcBindingInqAuthInfo или RpcBindingInqAuthInfoEx выполняются.

Примечание Последовательность протокола ncalrpc поддерживает только RPC_C_AUTHN_WINNT, но поддерживает взаимную проверку подлинности; для этого укажите имя субъекта-службы и запросите взаимную проверку подлинности с помощью параметра SecurityQOS .
 

Примечание

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

Требования

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

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

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo