Partilhar via


Verificando o acesso do cliente aos recursos solicitados no script

Chame o método AccessCheck de um objeto deIAzClientContextpara verificar se o cliente tem acesso a uma ou mais operações. Para obter informações sobre como criar um objeto IAzClientContext, consulte Estabelecendo um contexto de cliente no Script.

Um cliente pode ser membro de mais de uma função e uma operação pode ser atribuída a mais de uma tarefa, portanto, o Gerenciador de Autorização verifica todas as funções e tarefas. Se qualquer função à qual o cliente pertence contiver qualquer tarefa que contenha uma operação, o acesso a essa operação será concedido.

Para verificar o acesso a apenas uma única função à qual o cliente pertence, defina a propriedadeRoleForAccessCheck do objetoIAzClientContext.

Ao inicializar o armazenamento de políticas de autorização para verificação de acesso, deve passar zero como o valor do parâmetro lFlags do método Initialize do objeto AzAuthorizationStore.

Também é possível aplicar a lógica de negócios em tempo de execução para qualificar o acesso. Para obter informações sobre como qualificar o acesso com lógica de negócios, consulte Qualificando o acesso com lógica de negócios no Script.

O exemplo a seguir mostra como verificar o acesso de um cliente a uma operação. O exemplo pressupõe que há um repositório de políticas XML existente chamado MyStore.xml no diretório raiz da unidade C e que esse armazenamento contém um aplicativo chamado Expense e uma operação chamada 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)

%>