Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте скрипты бизнес-правил, чтобы обеспечить логику времени выполнения для проверки доступа. Для получения дополнительной информации о бизнес-правилах см. .
Чтобы назначить бизнес-правило задаче, сначала задайте свойство BizRuleLanguage объекта IAzTask, представляющего задачу. Скрипт должен быть написан с помощью языка программирования Visual Basic Scripting Edition (VBScript) или программного обеспечения для разработки JScript. После указания языка скрипта задайте свойство BizRule объекта IAzTask строковым представлением скрипта.
При проверке доступа к операции, содержащейся в задаче с соответствующим бизнес-правилом, приложение должно создать два массива одного размера, которые должны передаваться в качестве varParameterNames и varParameterValues параметров метода AccessCheck объекта IAzClientContext. Сведения о создании контекста клиента см. в Создание контекста клиента в скрипте.
Метод AccessCheckсоздает объект AzBizRuleContext, который передается в скрипт бизнес-правила. Затем скрипт задает свойство BusinessRuleResult объекта AzBizRuleContext. Значение True указывает, что доступ предоставлен, а значение False указывает, что доступ запрещен.
Нельзя назначить скрипт бизнес-правила объекту IAzTask, содержащемуся в делегированном объекте IAzScope.
В следующем примере показано, как использовать скрипт бизнес-правила для проверки доступа клиента к операции. В примере предполагается, что в корневом каталоге диска C есть существующее хранилище политик XML с именем MyStore.xml, а это хранилище содержит приложение с именем Expense, задачу с именем Submit Expense и операцию с именем UseFormControl.
<%@ Language=VBScript %>
<%
' Create the AzAuthorizationStore object.
Dim AzManStore
Set AzManStore = CreateObject("AzRoles.AzAuthorizationStore")
' Initialize the authorization store.
AzManStore.Initialize 0, "msxml://C:\MyStore.xml"
' Open the application object in the store.
Dim expenseApp
Set expenseApp = AzManStore.OpenApplication("Expense")
' Create a client context.
Dim clientName
clientName = Request.ServerVariables("LOGON_USER")
Dim clientContext
Set clientContext = _
expenseApp.InitializeClientContextFromName(clientName)
' Create a business rule for the Submit Expense task.
' Open the Submit Expense task.
Dim submitTask
Set submitTask = expenseApp.OpenTask("Submit Expense")
' Set the business rule language to VBScript.
submitTask.BizRuleLanguage = "VBScript"
' Create a string with the business rule code.
Dim newline
newline = chr(13)
Dim bizRuleString
bizRuleString = "Dim Amount" + newline _
+"AzBizRuleContext.BusinessRuleResult = FALSE" + newline _
+"Amount = AzBizRuleContext.GetParameter(""ExpAmount"")" _
+newline _
+"if Amount < 500 then AzBizRuleContext.BusinessRuleResult = TRUE"
' Assign the business rule to the Submit Expense task.
submitTask.BizRule = bizRuleString
' Save the task information to the store.
submitTask.Submit
' Open the operation to check.
Dim formOperation
Set formOperation = expenseApp.OpenOperation("UseFormControl")
' Get the ID of the operation.
Dim operationID
operationID = formOperation.OperationID
' Set up arrays for operations and results.
Dim Operations(1)
Operations(0) = operationID
Dim Results
' Set up business rule parameters.
Dim bizNames(1)
Dim bizValues(1)
bizNames(0) = "ExpAmount"
bizValues(0) = 100
' Check access.
Results = clientContext.AccessCheck _
("UseFormControl", Empty, Operations, bizNames, bizValues)
%>