Acceso calificado con lógica de negocios en script

Use scripts de reglas de negocios para proporcionar lógica en tiempo de ejecución para comprobar el acceso. Para obtener más información sobre las reglas de negocios, consulte Reglas de negocios.

Para asignar una regla de negocios a una tarea, establezca primero la propiedad BizRuleLanguage del objeto IAzTask que representa la tarea. El script debe escribirse con el lenguaje de programación Visual Basic Scripting Edition (VBScript) o el software de desarrollo de JScript. Después de especificar el lenguaje de script, establezca la propiedad BizRule del objeto IAzTask con una representación de cadena del script.

Al comprobar el acceso de una operación contenida en una tarea que tiene una regla de negocios asociada, la aplicación debe crear dos matrices del mismo tamaño para pasarse como los parámetros varParameterNames y varParameterValues del método AccessCheck de un objeto IAzClientContext . Para obtener información sobre cómo crear un contexto de cliente, vea Establecer un contexto de cliente en script.

El método AccessCheck crea un objeto AzBizRuleContext que se pasa al script de regla de negocios. A continuación, el script establece la propiedad BusinessRuleResult del objeto AzBizRuleContext . Un valor de True indica que se concede acceso y un valor de False indica que se deniega el acceso.

No se puede asignar un script de regla de negocios a un objeto IAzTask contenido por un objeto IAzScope delegado.

En el ejemplo siguiente se muestra cómo usar un script de regla de negocios para comprobar el acceso de un cliente a una operación. En el ejemplo se supone que hay un almacén de directivas XML existente denominado MyStore.xml en el directorio raíz de la unidad C y que este almacén contiene una aplicación denominada Expense, una tarea denominada Submit Expense y una operación denominada 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)
 
%>