ISecurityCallContext::IsCallerInRole 方法 (comsvcs.h)

确定直接调用方是否处于指定角色。

语法

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

参数

[in] bstrRole

角色的名称。

[out] pfInRole

如果调用方处于指定角色,则为 TRUE;如果不是,则为 FALSE。 如果未为应用程序定义指定角色,则返回 FALSE 。 如果未启用基于角色的安全性,则此参数设置为 TRUE

返回值

此方法可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED和E_FAIL,以及以下值。

返回代码 说明
S_OK
bstrRole 参数中指定的角色是可识别的角色,pfIsInRole 参数中返回的布尔结果指示调用方是否处于该角色中。
CONTEXT_E_ROLENOTFOUND
bstrRole 参数中指定的角色不存在。

注解

使用此方法可限制对不应执行的代码部分的访问,除非调用方是指定角色的成员。 使用组件服务管理工具将 Windows 组和用户分配到应用程序的角色。 有关角色的详细信息,请参阅 基于角色的安全性

IsCallerInRole 仅适用于当前正在执行的方法的直接调用方。 IsCallerInRole 不适用于调用当前方法的调用序列中的任何其他调用方。 但是,通过使用 get_Item 属性方法获取安全调用上下文对象的 Callers 属性,可以获取有关序列中其他调用方的信息。

由于未启用基于角色的安全性时 IsCallerInRoleTRUE,因此最好在调用 IsCallerInRole 之前调用 IsSecurityEnabled,以确保 IsCallerInRole 返回有用的信息。

要求

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

另请参阅

ISecurityCallContext

编程组件安全性

基于角色的安全性