Abilitazione dell'accesso con la logica di business nello script
Usare gli script delle regole business per fornire la logica di runtime per controllare l'accesso. Per altre informazioni sulle regole aziendali, vedere Regole business.
Per assegnare una regola business a un'attività, impostare prima la proprietà BizRuleLanguage dell'oggetto IAzTask che rappresenta l'attività. Lo script deve essere scritto usando il linguaggio di programmazione Visual Basic Scripting Edition (VBScript) o il software di sviluppo JScript. Dopo aver specificato il linguaggio di script, impostare la proprietà BizRule dell'oggetto IAzTask con una rappresentazione stringa dello script.
Quando si verifica l'accesso per un'operazione contenuta in un'attività con una regola business associata, l'applicazione deve creare due matrici delle stesse dimensioni da passare come parametri varParameterNames e varParameterValues del metodo AccessCheck di un oggetto IAzClientContext . Per informazioni sulla creazione di un contesto client, vedere Definizione di un contesto client nello script.
Il metodo AccessCheck crea un oggetto AzBizRuleContext passato allo script della regola business. Lo script imposta quindi la proprietà BusinessRuleResult dell'oggetto AzBizRuleContext . Un valore True indica che l'accesso viene concesso e un valore false indica che l'accesso viene negato.
Non è possibile assegnare uno script di regola business a un oggetto IAzTask contenuto da un oggetto IAzScope delegato.
Nell'esempio seguente viene illustrato come usare uno script di regola business per controllare l'accesso di un client a un'operazione. Nell'esempio si presuppone che esista un archivio criteri XML esistente denominato MyStore.xml nella directory radice dell'unità C e che questo archivio contenga un'applicazione denominata Expense, un'attività denominata Submit Expense e un'operazione denominata 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)
%>