次の方法で共有


スクリプトでの要求されたリソースへのクライアント アクセスの確認

クライアントが 1 つ以上の操作にアクセスできるかどうかをチェックするには、IAzClientContext オブジェクトの AccessCheck メソッドを呼び出します。 IAzClientContext オブジェクトの作成の詳細については、「スクリプトでのクライアント コンテキストの確立」を参照してください。

クライアントは複数のロールにメンバーシップを持ち、1 つの操作が複数のタスクに割り当てられる可能性があるため、Authorization Manager はすべてのロールとタスクをチェックします。 クライアントが属するロールに、操作を含むタスクが含まれている場合、その操作へのアクセス権が付与されます。

クライアントが属する 1 つのロールに対してのみアクセスをチェックするには、IAzClientContext オブジェクトの RoleForAccessCheck プロパティを設定します。

アクセス チェックの承認ポリシー ストアを初期化するときは、AzAuthorizationStore オブジェクトの Initialize メソッドの lFlags パラメーターの値として 0 を渡す必要があります。

また、実行時にビジネス ロジックを適用してアクセスを修飾することもできます。 ビジネス ロジックを使用したアクセスの修飾の詳細については、「 スクリプトでのビジネス ロジックを使用したアクセスの修飾」を参照してください。

次の例は、クライアントの操作へのアクセスをチェックする方法を示しています。 この例では、ドライブ 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)

%>