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 物件的變體。 陣列的每個元素都會保存VT_I2或VT_I4,代表 IAzApplication 原則中 IAzOperation 物件的 OperationID 屬性。
[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 值。
傳回碼/值 | Description |
---|---|
|
如果使用 Active Directory 授權存放區並委派範圍管理,則可以傳回此錯誤碼。 委派範圍內的工作和角色定義不能有 BizRules。 如果委派範圍內的工作或角色定義包含 BizRule (如果存放區損毀 ) ,AccessCheck 方法將會失敗。 |
|
用來評估存取權的 BizRule 包含語法錯誤。 |
備註
如果 RoleForAccessCheck 屬性是在用戶端內容中定義, 則 AccessCheck 方法只會在該角色上執行。
呼叫此方法時,應用程式群組成員資格會新增至客戶端內容,因此不需要針對相同用戶端內容上的後續存取檢查重新計算。
BizRule 無法呼叫這個方法。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | azroles.h |
程式庫 | Azroles.lib |
Dll | Azroles.dll |
可轉散發套件 | Windows XP 上的 Windows Server 2003 系統管理工具套件 |