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


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

Серверное приложение вызывает функцию RpcBindingInqAuthClientEx для получения расширенных сведений о клиентской программе, которая вызвала удаленную процедуру.

Синтаксис

RPC_STATUS RpcBindingInqAuthClientExW(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_WSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc,
  unsigned long      Flags
);

Параметры

ClientBinding

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

Privs

Возвращает указатель на дескриптор привилегированных сведений для клиентского приложения, который вызвал удаленную процедуру на дескриптор привязки ClientBinding. Для вызовов ncalrpcPrivs содержит строку с именем субъекта клиента.

Серверное приложение должно привести параметр Privs к типу данных, указанному параметром AuthnSvc. Данные, на которые ссылается этот аргумент, доступны только для чтения и не должны изменяться серверным приложением. Если сервер хочет сохранить какие-либо возвращаемые данные, сервер должен скопировать данные в выделенную сервером память.

Дополнительные сведения об SSPS см. впоставщиков поддержки безопасности .

ServerPrincName

Возвращает указатель на указатель на имя субъекта-сервера, указанное серверным приложением, которое вызывало функцию RpcServerRegisterAuthInfo. Содержимое возвращаемого имени и его синтаксиса определяются службой проверки подлинности, используемой службой проверки подлинности. Для SCHANNEL SSP основное имя находится в формате msstd. Дополнительные сведения о формате msstd см. в разделе Имена субъектов.

Укажите значение NULL, чтобы предотвратить RpcBindingInqAuthClientEx возвращать параметр ServerPrincName. В этом случае приложение не вызывает функцию RpcStringFree.

AuthnLevel

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

Укажите значение NULL, чтобы предотвратить RpcBindingInqAuthClientEx возвращать параметр AuthnLevel.

AuthnSvc

Возвращает указатель на службу проверки подлинности, запрошенную клиентским приложением, которое сделало вызов удаленной процедуры для дескриптора привязки ClientBinding. Список служб проверки подлинности, поддерживаемых RPC, см. в разделе Authentication-Service Константы.

Укажите значение NULL, чтобы предотвратить RpcBindingInqAuthClientEx возвращать параметр AuthnSvc.

ПримечаниеAuthnSvc соответствует SECURITY_STATUS, возвращаемой QueryContextAttributes для каждого поставщика SSP на основе сертификатов для SECPKG_ATTR_DCE_INFO или SECPKG_ATTR_REMOTE_CERT_CONTEXT.
 

AuthzSvc

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

Укажите значение NULL, чтобы предотвратить RpcBindingInqAuthClientEx возвращать параметр AuthzSvc. Этот параметр не используется службой проверки подлинности RPC_C_AUTHN_WINNT. Возвращаемое значение всегда будет RPC_S_AUTHZ_NONE.

Flags

Управляет форматом имени субъекта. Этот параметр можно задать следующим значением.

Ценность Значение
RPC_C_FULL_CERT_CHAIN
Передает имя субъекта в формате полного .

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

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

Замечания

Серверное приложение вызывает функцию RpcBindingInqAuthClientEx, чтобы получить имя субъекта или атрибуты привилегий прошедшего проверку подлинности клиента, который вызвал удаленную процедуру. Кроме того, RpcBindingInqAuthClientEx возвращает службу проверки подлинности, уровень проверки подлинности и имя субъекта-сервера, указанное клиентом. Сервер может использовать возвращаемые данные для авторизации.

Библиотека времени выполнения RPC выделяет память для возвращаемого параметра ServerPrincName. Приложение отвечает за вызов функции RpcStringFree для возвращаемой строки аргумента.

Для синхронных вызовов RPC серверное приложение может использовать ноль в качестве значения параметра ClientBinding. Используя ноль, извлекает сведения о проверке подлинности и авторизации из текущего вызова удаленной процедуры.

Заметка

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

Требования

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

См. также

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree