在脚本中验证客户端对请求资源的访问权限

调用 IAzClientContext 对象的 AccessCheck 方法以检查客户端是否有权访问一个或多个操作。 有关创建 IAzClientContext 对象的信息,请参阅 在脚本中建立客户端上下文

一个客户端可能具有多个角色的成员身份,并且一个操作可能分配给多个任务,因此授权管理器会检查所有角色和任务。 如果客户端所属的任何角色包含任何包含操作的任务,则会授予对该操作的访问权限。

若要仅检查客户端所属的单个角色的访问权限,请设置 IAzClientContext 对象的 RoleForAccessCheck 属性。

为访问检查初始化授权策略存储时,必须将零作为 AzAuthorizationStore 对象的 Initialize 方法的 lFlags 参数的值传递。

还可以在运行时应用业务逻辑来限定访问权限。 有关使用业务逻辑限定访问权限的信息,请参阅 脚本中的通过业务逻辑限定访问权限

以下示例演示如何检查客户端对操作的访问权限。 该示例假定驱动器 C 根目录中有一个名为 MyStore.xml 的现有 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)

%>