Метод 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, а также следующие значения.
Код возврата | Описание |
---|---|
|
Роль, указанная в параметре bstrRole , является распознанной ролью, а логическое значение, возвращаемое в параметре pbIsInRole , указывает, находится ли вызывающий объект в этой роли. |
|
Роль, указанная в параметре bstrRole, не существует. |
|
Произошла непредвиденная ошибка. Это может произойти, если один объект передает указатель ObjectContext другому объекту, а другой объект вызывает IsCallerInRole с помощью этого указателя. Указатель ObjectContext недопустим вне контекста объекта, который его первоначально получил. |
Комментарии
Используйте этот метод, чтобы определить, связан ли прямой вызывающий объект выполняющегося в данный момент метода с определенной ролью. Роль — это символическое имя, представляющее пользователя или группу пользователей, имеющих определенные разрешения на доступ ко всем компонентам в данном приложении COM+. Разработчики определяют роли при создании компонента, а роли сопоставляются с отдельными пользователями или группами во время развертывания.
IsCallerInRole применяется только к непосредственному вызывающей объекту выполняемого в данный момент метода. (Прямой вызывающий объект — это процесс, вызывающий текущий серверный процесс. Это может быть базовый клиентский процесс или серверный процесс.) IsCallerInRole не применяется к процессу, который инициировал последовательность вызовов, из которой был вызван текущий метод, или к другим вызывающим абонентам в этой последовательности.
Так как IsCallerInRole возвращает значение TRUE , когда объект, вызывающий его, выполняется в клиентском процессе, рекомендуется вызвать IsSecurityEnabled перед вызовомIsCallerInRole. Если безопасность не включена, IsCallerInRole не вернет точный результат.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | comsvcs.h |