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


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

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

Синтаксис

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

Параметры

ClientBinding

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

Privs

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

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

Дополнительные сведения о поставщиках поддержки безопасности см. в разделе Поставщики поддержки безопасности (SSP).

ServerPrincName

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

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

AuthnLevel

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

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

AuthnSvc

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

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

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

AuthzSvc

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

Укажите значение 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 . При использовании нуля извлекаются сведения о проверке подлинности и авторизации из выполняемого в данный момент удаленного вызова процедуры.

Требования

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

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

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree