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 仅适用于当前正在执行的方法的直接调用方。 (直接调用方是调用当前服务器进程的进程。它可以是基本客户端进程或服务器 process。) IsCallerInRole 不适用于启动调用当前方法的调用序列的进程,也不适用于该序列中的任何其他调用方。

由于当调用它的对象在客户端的进程中执行时,IsCallerInRole 返回 TRUE,因此最好在调用 IsCallerInRole 之前调用 IsSecurityEnabled。 如果未启用安全性, IsCallerInRole 将不会返回准确的结果。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 comsvcs.h

另请参阅

IObjectContext