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


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

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

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

AuthnLevel

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

AuthnSvc

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

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

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

AuthIdentity

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

При использовании службы проверки подлинности RPC_C_AUTHN_WINNTAuthIdentity должна быть указательом на структуру 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 констант.
 

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

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

Замечания

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

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

Функция RpcBindingSetAuthInfoEx принимает моментальный снимок учетных данных. Таким образом, память, выделенная для параметра 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.

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

Заметка

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

Требования

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

См. также

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo