Проверка клиентского доступа к запрошенным ресурсам в скрипте
Вызовите метод AccessCheck объекта IAzClientContext, чтобы проверка, имеет ли клиент доступ к одной или нескольким операциям. Сведения о создании объекта IAzClientContext см. в разделе Установка контекста клиента в скрипте.
Клиент может иметь членство в нескольких ролях, а операция может быть назначена нескольким задачам, поэтому диспетчер авторизации проверяет все роли и задачи. Если какая-либо роль, которой принадлежит клиент, содержит задачу, содержащую операцию, доступ к этой операции предоставляется.
Чтобы проверка доступ только для одной роли, к которой принадлежит клиент, задайте свойство RoleForAccessCheck объекта IAzClientContext.
При инициализации хранилища политик авторизации для доступа проверка необходимо передать ноль в качестве значения параметра lFlags метода Initialize объекта AzAuthorizationStore.
Кроме того, можно применить бизнес-логику во время выполнения, чтобы получить доступ. Сведения о квалифицированном доступе с помощью бизнес-логики см. в разделе Квалификация доступа с помощью бизнес-логики в скрипте.
В следующем примере показано, как проверка доступ клиента к операции. В примере предполагается, что в корневом каталоге диска C имеется хранилище политик XML с именем MyStore.xml и что это хранилище содержит приложение с именем 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)
' 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)
%>