Функция RpcBindingSetAuthInfoA (rpcdce.h)
Функция RpcBindingSetAuthInfo задает сведения о проверке подлинности и авторизации дескриптора привязки.
Синтаксис
RPC_STATUS RpcBindingSetAuthInfoA(
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 .
Примечание
Заголовок rpcdce.h определяет RpcBindingSetAuthInfo в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | rpcdce.h (включая Rpc.h) |
Библиотека | Rpcrt4.lib |
DLL | Rpcrt4.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по