Freigeben über


Überprüfen des Clientzugriffs auf angeforderte Ressourcen im Skript

Rufen Sie die AccessCheck-Methode eines IAzClientContext-Objekts auf, um zu überprüfen, ob der Client Zugriff auf einen oder mehrere Vorgänge hat. Informationen zum Erstellen eines IAzClientContext-Objekts finden Sie unter Einrichten eines Clientkontexts in Skript.

Ein Client kann mitglied in mehr als einer Rolle sein, und ein Vorgang kann mehreren Aufgaben zugewiesen sein, sodass der Autorisierungs-Manager nach allen Rollen und Aufgaben sucht. Wenn eine Rolle, zu der der Client gehört, eine Aufgabe enthält, die einen Vorgang enthält, wird der Zugriff auf diesen Vorgang gewährt.

Um den Zugriff nur auf eine einzelne Rolle zu überprüfen, zu der der Client gehört, legen Sie die RoleForAccessCheck-Eigenschaft des IAzClientContext-Objekts fest.

Beim Initialisieren des Autorisierungsrichtlinienspeichers für die Zugriffsüberprüfung müssen Sie null als Wert des lFlags-Parameters der Initialize-Methode des AzAuthorizationStore-Objekts übergeben.

Es ist auch möglich, Geschäftslogik zur Laufzeit anzuwenden, um den Zugriff zu qualifizieren. Informationen zum Qualifizieren des Zugriffs mit Geschäftslogik finden Sie unter Qualifizieren des Zugriffs mit Geschäftslogik in Skript.

Das folgende Beispiel zeigt, wie der Zugriff eines Clients auf einen Vorgang überprüft wird. Im Beispiel wird davon ausgegangen, dass im Stammverzeichnis von Laufwerk C ein XML-Richtlinienspeicher mit dem Namen MyStore.xml vorhanden ist und dieser Speicher eine Anwendung namens Expense und einen Vorgang namens UseFormControl enthält.

<%@ 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)

%>