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


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

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

Синтаксис

HRESULT IsCallerInRole(
  [in]  BSTR bstrRole,
  [out] BOOL *pfIsInRole
);

Параметры

[in] bstrRole

Имя роли.

[out] pfIsInRole

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

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

Этот метод может возвращать следующие значения.

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

Комментарии

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

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

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

Требования

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

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

IObjectContext