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


Функция CoQueryClientBlanket (combaseapi.h)

Вызывается сервером, чтобы узнать о клиенте, который вызвал метод, выполняющийся в текущем потоке. Это вспомогательная функция для IServerSecurity::QueryBlanket.

Синтаксис

HRESULT CoQueryClientBlanket(
  [out, optional]     DWORD            *pAuthnSvc,
  [out, optional]     DWORD            *pAuthzSvc,
  [out, optional]     LPOLESTR         *pServerPrincName,
  [out, optional]     DWORD            *pAuthnLevel,
  [out, optional]     DWORD            *pImpLevel,
  [out, optional]     RPC_AUTHZ_HANDLE *pPrivs,
  [in, out, optional] DWORD            *pCapabilities
);

Параметры

[out, optional] pAuthnSvc

Указатель на переменную, которая получает текущую службу проверки подлинности. Это будет одно значение, взятое из констант службы проверки подлинности. Если вызывающий объект задает значение NULL, текущая служба проверки подлинности не извлекается.

[out, optional] pAuthzSvc

Указатель на переменную, которая получает текущую службу авторизации. Это будет одно значение, взятое из констант авторизации. Если вызывающий объект задает значение NULL, текущая служба авторизации не извлекается.

[out, optional] pServerPrincName

Текущее имя субъекта. Строка будет выделена вызываемым объектом с помощью CoTaskMemAlloc и должна быть освобождена вызывающим объектом с помощью CoTaskMemFree. По умолчанию имена субъектов Schannel будут находиться в формате msstd. Полная форма будет возвращена, если EOAC_MAKE_FULLSIC указан в параметре pCapabilities . Дополнительные сведения о формах msstd и fullsic см. в разделе Имена субъектов. Если вызывающий объект задает значение NULL, текущее имя субъекта не извлекается.

[out, optional] pAuthnLevel

Указатель на переменную, получающую текущий уровень проверки подлинности. Это будет одно значение, взятое из констант уровня проверки подлинности. Если вызывающий объект задает значение NULL, текущий уровень проверки подлинности не извлекается.

[out, optional] pImpLevel

Этот параметр должен иметь значение NULL.

[out, optional] pPrivs

Указатель на дескриптор, который получает сведения о привилегиях для клиентского приложения. Формат структуры, на которую ссылается дескриптор, зависит от службы проверки подлинности. Приложение не должно записывать или освобождать память. Информация действительна только в течение текущего вызова. Для NTLMSSP и Kerberos это строка, определяющая субъекта-клиента. Для Schannel это CERT_CONTEXT структура, представляющая сертификат клиента. Если у клиента нет сертификата, возвращается значение NULL . Если вызывающий объект задает значение NULL, текущие сведения о привилегиях не извлекаются. См . RPC_AUTHZ_HANDLE.

[in, out, optional] pCapabilities

Указатель для возврата флагов, указывающих возможности вызова. Чтобы запросить возврат имени субъекта в полной форме, если Schannel является службой проверки подлинности, вызывающий объект может задать флаг EOAC_MAKE_FULLSIC в этом параметре. Если вызывающий объект задает значение NULL, текущие возможности не извлекаются.

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

Эта функция может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и S_OK.

Комментарии

Сервер вызывает CoQueryClientBlanket для получения сведений о безопасности клиента, который вызвал метод, выполняющийся в текущем потоке. Эта функция инкапсулирует следующую последовательность распространенных вызовов (обработка ошибок исключается):

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName, 
                pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
    pss->Release();

Эта последовательность вызывает CoGetCallContext , чтобы получить указатель на IServerSecurity , а с помощью полученного указателя вызывает IServerSecurity::QueryBlanket , а затем освобождает указатель.

Требования

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

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

CoGetCallContext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

Безопасность в COM