Comprobación del acceso de cliente a los recursos solicitados en el script
Llame al método AccessCheck de un objeto IAzClientContext para comprobar si el cliente tiene acceso a una o varias operaciones. Para obtener información sobre cómo crear un objeto IAzClientContext , vea Establecimiento de un contexto de cliente en script.
Un cliente puede tener pertenencia a más de un rol y una operación puede asignarse a más de una tarea, por lo que el Administrador de autorización comprueba todos los roles y tareas. Si algún rol al que pertenece el cliente contiene cualquier tarea que contenga una operación, se concede acceso a esa operación.
Para comprobar el acceso solo para un único rol al que pertenece el cliente, establezca la propiedad RoleForAccessCheck del objeto IAzClientContext .
Al inicializar el almacén de directivas de autorización para la comprobación de acceso, debe pasar cero como valor del parámetro lFlags del método Initialize del objeto AzAuthorizationStore .
También es posible aplicar lógica de negocios en tiempo de ejecución para calificar el acceso. Para obtener información sobre cómo calificar el acceso con lógica de negocios, consulte Acceso calificado con lógica de negocios en script.
En el ejemplo siguiente se muestra cómo 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 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)
' Open the operation to check.
Dim formOperation
Set formOperation = expenseApp.OpenOperation("UseFormControl")
' Get the ID of the operation.
Dim operationID
operationID = formOperation.OperationID
' Check access.
Dim Operations(1)
Operations(0) = operationID
Dim Results
Results = _
clientContext.AccessCheck("UseFormControl", Empty, Operations)
%>