Функция RpcBindingSetAuthInfo (rpcdce.h)
Функция RpcBindingSetAuthInfo задает сведения о проверке подлинности и авторизации дескриптора привязки.
Синтаксис
RPC_STATUS RpcBindingSetAuthInfo(
RPC_BINDING_HANDLE Binding,
RPC_CSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc
);
Параметры
Binding
Дескриптор привязки сервера, к которому применяются сведения о проверке подлинности и авторизации.
ServerPrincName
Указатель на ожидаемое имя субъекта сервера, на который ссылается привязка. Содержимое имени и его синтаксис определяются используемой службой проверки подлинности.
AuthnLevel
Уровень проверки подлинности для удаленных вызовов процедур, выполняемых с помощью привязки. Список уровней проверки подлинности, поддерживаемых RPC, см. в списке констант уровня проверки подлинности.
AuthnSvc
Используемая служба проверки подлинности. См. примечание.
Укажите RPC_C_AUTHN_NONE, чтобы отключить проверку подлинности для удаленных вызовов процедур, выполненных с помощью привязки.
Если указан RPC_C_AUTHN_DEFAULT, библиотека среды выполнения RPC использует службу проверки подлинности RPC_C_AUTHN_WINNT для удаленных вызовов процедур, выполняемых с помощью привязки.
AuthIdentity
Обработка структуры, содержащей учетные данные проверки подлинности и авторизации клиента, соответствующие выбранной службе проверки подлинности и авторизации. При использовании RPC_C_AUTHN_WINNT служба проверки подлинности AuthIdentity должна быть указателем на структуру SEC_WINNT_AUTH_IDENTITY (определенную в Rpcdce.h). Службы проверки подлинности Kerberos и Negotiate также используют структуру SEC_WINNT_AUTH_IDENTITY .
При выборе службы проверки подлинности RPC_C_AUTHN_GSS_SCHANNEL параметр AuthIdentity должен быть указателем на структуру SCHANNEL_CRED (определенную в Schannel.h). Укажите значение NULL, чтобы использовать контекст входа безопасности для текущего адресного пространства. Передайте значение RPC_C_NO_CREDENTIALS для использования анонимного контекста входа.
AuthzSvc
Служба авторизации, реализованная сервером для интересующего интерфейса. См. примечание.
Достоверность и надежность данных авторизации, как и любых данных приложения, зависит от выбранной службы проверки подлинности и выбранного уровня проверки подлинности. Этот параметр игнорируется при использовании службы проверки подлинности RPC_C_AUTHN_WINNT.
Возвращаемое значение
Значение | Значение |
---|---|
|
Вызов выполнен успешно. |
|
Недопустимый дескриптор привязки. |
|
Это был неправильный тип привязки для операции. |
|
Неизвестная служба проверки подлинности. |
Комментарии
Клиентское приложение вызывает функцию RpcBindingSetAuthInfo , чтобы настроить дескриптор привязки сервера для выполнения вызовов удаленных процедур, прошедших проверку подлинности. Клиент не требуется для вызова этой функции.
Если клиент не вызывает RpcBindingSetAuthInfo, то удаленные вызовы процедур в дескриптор привязки привязки не проходят проверку подлинности. Сервер может вызвать RpcBindingInqAuthClient из удаленного вызова процедуры, чтобы определить, прошел ли этот вызов проверку подлинности.
Функция RpcBindingSetAuthInfo принимает snapshot учетных данных. Таким образом, память, выделенная для параметра AuthIdentity , может быть освобождена до дескриптора привязки.
Из-за различных требований к различным версиям Microsoft RPC корпорация Майкрософт рекомендует, чтобы ваше приложение поддерживало указатель на параметр AuthIdentity до тех пор, пока существует дескриптор привязки. Это повышает переносимость приложения.
Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2): Для Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003 с пакетом обновления 1 (SP1) указатель на параметр AuthIdentity не должен поддерживаться в течение срока действия дескриптора привязки. Этот указатель должен поддерживаться только в том случае, если последующие вызовы RpcBindingInqAuthInfo или RpcBindingInqAuthInfoEx выполняются.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | rpcdce.h (включая Rpc.h) |
Библиотека | Rpcrt4.lib |
DLL | Rpcrt4.dll |