IAzClientContext::AccessCheck 方法 (azroles.h)
AccessCheck 方法确定是否允许当前客户端上下文执行指定的操作。
语法
HRESULT AccessCheck(
[in] BSTR bstrObjectName,
[in] VARIANT varScopeNames,
[in] VARIANT varOperations,
[in, optional] VARIANT varParameterNames,
[in, optional] VARIANT varParameterValues,
[in, optional] VARIANT varInterfaceNames,
[in, optional] VARIANT varInterfaceFlags,
[in, optional] VARIANT varInterfaces,
[out] VARIANT *pvarResults
);
参数
[in] bstrObjectName
所访问对象的名称。 此字符串用于审核。
[in] varScopeNames
包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含一个 VT_BSTR ,其中包含 由 bstrObjectName 参数指定的对象匹配的范围的名称。 数组只能包含一个元素。 若要使用默认的应用程序级别范围,请将数组中的第一个条目设置为空字符串 (“”) 或 VT_EMPTY,或将 VT_EMPTY 传递给此参数。
[in] varOperations
检查客户端上下文的访问的操作。 这是一个包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含一个表示 IAzApplication 策略中 IAzOperation 对象的 OperationID 属性的VT_I2或VT_I4。
[in, optional] varParameterNames
业务规则可用的参数名称 (BizRules 通过 AzBizRuleContext::GetParameter 方法) 。 这是一个包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含一个包含参数名称 的VT_BSTR 。 此数组必须按调用方按字母顺序排序;排序顺序由区分大小写的 VarCmp 定义。 varParameterValues 数组的顺序必须与此数组的顺序匹配。 默认值为 VT_NULL。
[in, optional] varParameterValues
可用于业务规则的参数值 (BizRules 通过 AzBizRuleContext::GetParameter 方法) 。 这是一个包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含一个值,该值对应于 varParameterNames 数组中的元素。 默认值为 VT_NULL。 数组中的条目可以保存除 VT_UNKNOWN 和 VT_DISPATCH以外的任何类型。
[in, optional] varInterfaceNames
在 BizRule 脚本中, varInterfaces 数组中的接口所依据的名称。 这是一个包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含一个包含接口名称的字符串变体。 此方法为数组中的每个条目调用 IActiveScript::AddNamedItem 方法。 默认值为 VT_NULL。
[in, optional] varInterfaceFlags
将在调用 IActiveScript::AddNamedItem 时传递的标志。 这是一个包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含 一个VT_I4。 SCRIPTITEM_ISVISIBLE标志是隐含的;忽略SCRIPTITEM_ISPERSISTENT标志。 数组中的每个条目都必须与 varInterfaceNames 数组中的相应元素匹配。 默认值为 VT_NULL。
[in, optional] varInterfaces
将提供给 BizRule 脚本的 IDispatch 接口。 这是一个包含 SAFEARRAY 或 JScript Array 对象的变体。 数组的每个元素都包含一个 IDispatch 接口。 数组中的每个条目都必须与 varInterfaceNames 数组中的相应元素匹配。 默认值为 VT_NULL。
[out] pvarResults
指向 VARIANT 的指针,用于返回包含访问检查结果的 SAFEARRAY。 SAFEARRAY 的每个元素都是 VT_I4 类型的 VARIANT。 数组中的每个条目都匹配 varOperations 数组中的相应元素。 如果向客户端上下文授予了对操作的访问权限,则会在 pvarResults 数组的相应元素中返回值 NO_ERROR。 任何其他值表示未授予对该操作的访问权限。 指示失败的典型值ERROR_ACCESS_DENIED。
在 JScript 中,返回的 SAFEARRAY 必须转换为 JScript Array 对象。
返回值
如果方法成功,该方法将返回NO_ERROR。
如果方法失败,它将返回一个 HRESULT 值,该值指示方法的状态,而不是访问检查的结果。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
如果使用 Active Directory 授权存储并且已委托管理范围,则可以返回此错误代码。 委托范围中的任务和角色定义不能具有 BizRules。 如果委托作用域内的任务或角色定义包含 BizRule (如果存储) 损坏,则 AccessCheck 方法将失败。 |
|
用于评估访问权限的 BizRule 包含语法错误。 |
注解
如果在客户端上下文中定义了 RoleForAccessCheck 属性,则仅对该角色执行 AccessCheck 方法。
调用此方法时,应用程序组成员身份将添加到客户端上下文中,因此无需重新计算它,以便对同一客户端上下文进行后续访问检查。
BizRule 无法调用此方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | azroles.h |
Library | Azroles.lib |
DLL | Azroles.dll |
可再发行组件 | Windows XP 上的 Windows Server 2003 管理工具包 |