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


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

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

Синтаксис

RPC_STATUS RpcBindingInqAuthClientA(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_CSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc
);

Параметры

ClientBinding

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

Privs

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

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

Данные, которые Privs указывают непосредственно из SSP. Таким образом, формат данных зависит от SSP. Дополнительные сведения об SSPS см. впоставщиков поддержки безопасности .

ServerPrincName

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

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

AuthnLevel

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

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

AuthnSvc

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

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

AuthzSvc

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

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

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

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

Замечания

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

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

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

Заметка

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

Требования

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

См. также

RpcBindingSetAuthInfo

RpcStringFree