Функция 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
Возвращает указатель на службу проверки подлинности, запрошенную клиентским приложением, которое сделало вызов удаленной процедуры для дескриптора привязки
Укажите значение NULL, чтобы предотвратить RpcBindingInqAuthClient возвращать параметр AuthnSvc.
AuthzSvc
Возвращает указатель на службу авторизации, запрошенную клиентским приложением, которое вызывало удаленный вызов процедуры для дескриптора привязки ClientBinding.
Укажите значение NULL, чтобы предотвратить RpcBindingInqAuthClient возвращать параметр AuthzSvc. Этот параметр не используется службой проверки подлинности RPC_C_AUTHN_WINNT. Возвращаемое значение всегда будет RPC_C_AUTHZ_NONE.
Возвращаемое значение
Ценность | Значение |
---|---|
|
Вызов выполнен успешно. |
|
Дескриптор привязки недопустим. |
|
Это был неправильный вид привязки для операции. |
|
Привязка не содержит сведений о проверке подлинности. |
Замечания
Серверное приложение вызывает функцию 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 |