Метод ObjectContext::IsCallerInRole (comsvcs.h)

Указывает, находится ли прямой вызывающий объект в указанной роли (напрямую или в составе группы).

Синтаксис

HRESULT IsCallerInRole(
  [in]  BSTR         bstrRole,
  [out] VARIANT_BOOL *pbInRole
);

Параметры

[in] bstrRole

Имя роли.

[out] pbInRole

ЗНАЧЕНИЕ TRUE , если вызывающий объект находится в указанной роли; Значение FALSE в противном случае. Этот параметр также имеет значение TRUE , если безопасность не включена.

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

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

Код возврата Описание
S_OK
Роль, указанная в параметре bstrRole , является распознанной ролью, а логическое значение, возвращаемое в параметре pbIsInRole , указывает, находится ли вызывающий объект в этой роли.
CONTEXT_E_ROLENOTFOUND
Роль, указанная в параметре bstrRole, не существует.
E_UNEXPECTED
Произошла непредвиденная ошибка. Это может произойти, если один объект передает указатель ObjectContext другому объекту, а другой объект вызывает IsCallerInRole с помощью этого указателя. Указатель ObjectContext недопустим вне контекста объекта, который его первоначально получил.

Комментарии

Используйте этот метод, чтобы определить, связан ли прямой вызывающий объект выполняющегося в данный момент метода с определенной ролью. Роль — это символическое имя, представляющее пользователя или группу пользователей, имеющих определенные разрешения на доступ ко всем компонентам в данном приложении COM+. Разработчики определяют роли при создании компонента, а роли сопоставляются с отдельными пользователями или группами во время развертывания.

IsCallerInRole применяется только к непосредственному вызывающей объекту выполняемого в данный момент метода. (Прямой вызывающий объект — это процесс, вызывающий текущий серверный процесс. Это может быть базовый клиентский процесс или серверный процесс.) IsCallerInRole не применяется к процессу, который инициировал последовательность вызовов, из которой был вызван текущий метод, или к другим вызывающим абонентам в этой последовательности.

Так как IsCallerInRole возвращает значение TRUE , когда объект, вызывающий его, выполняется в клиентском процессе, рекомендуется вызвать IsSecurityEnabled перед вызовомIsCallerInRole. Если безопасность не включена, IsCallerInRole не вернет точный результат.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

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

Objectcontext