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_I2VT_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_UNKNOWNVT_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
ERROR_FILE_CORRUPT
如果使用 Active Directory 授權存放區並委派範圍管理,則可以傳回此錯誤碼。 委派範圍內的工作和角色定義不能有 BizRules。 如果委派範圍內的工作或角色定義包含 BizRule (如果存放區損毀 ) ,AccessCheck 方法將會失敗。
OLESCRIPT_E_SYNTAX
用來評估存取權的 BizRule 包含語法錯誤。

備註

如果 RoleForAccessCheck 屬性是在用戶端內容中定義, 則 AccessCheck 方法只會在該角色上執行。

呼叫此方法時,應用程式群組成員資格會新增至客戶端內容,因此不需要針對相同用戶端內容上的後續存取檢查重新計算。

BizRule 無法呼叫這個方法。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 azroles.h
程式庫 Azroles.lib
Dll Azroles.dll
可轉散發套件 Windows XP 上的 Windows Server 2003 系統管理工具套件