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


Функция 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

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

Примечание Набор допустимых целевых имен для SSP см. в комментариях в документации По InitializeSecurityContext .
 

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 для использования анонимного контекста входа.

Примечание При выборе службы проверки подлинности RPC_C_AUTHN_GSS_SCHANNEL параметр AuthIdentity также может быть указателем на SCH_CRED структуру. Однако в Windows XP и более поздних версиях Windows единственной приемлемой структурой, передаваемой в качестве параметра AuthIdentity для службы проверки подлинности RPC_C_AUTHN_GSS_SCHANNEL, является структура SCHANNEL_CRED .
 

AuthzSvc

Служба авторизации, реализованная сервером для интересующего интерфейса. См. примечание.

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

Примечание Дополнительные сведения см. в разделе Authentication-Service Constants.
 

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

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

Комментарии

Клиентское приложение вызывает функцию 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 выполняются.

Примечание Функция RpcBindingSetAuthInfo не должна вызываться для дескриптора привязки во время выполнения вызова RPC с тем же дескриптором. Это приводит к неопределенным результатам.
 

Требования

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

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

Службы безопасности MSMQ

RpcBindingInqAuthInfo

RpcBindingSetOption

RpcServerRegisterAuthInfo