Win32 API 日本語リファレンス
ホームSecurity.Authorization › IAzClientContext2

IAzClientContext2

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID2b0c92b8-208a-488a-8f81-e4edb22111cd継承元IAzClientContext呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl20

公式ドキュメント

IAzClientContext インターフェイスを継承し、クライアントコンテキストを操作する新しいメソッドを実装します。

メソッド 6

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 20 HRESULT GetAssignedScopesPage(INT lOptions, INT PageSize, VARIANT* pvarCursor, VARIANT* pvarScopeNames)

現在の IAzClientContext2 オブジェクトが表すクライアントが、少なくとも 1 つのロールに割り当てられているスコープの一覧を取得します。

lOptionsINTin

このメソッドがスコープ割り当てのために LDAP クエリグループを確認するかどうかを指定するフラグです。以前にキャッシュされた LDAP クエリグループは、このフラグの値に関係なく確認されます。

意味
AZ_CLIENT_CONTEXT_SKIP_LDAP_QUERY
1
以前にキャッシュされていない LDAP クエリグループは確認されません。
PageSizeINTin各ページの結果に含まれる要素の数です。
pvarCursorVARIANT*inout現在の結果ページを表す VARIANT へのポインターです。GetAssignedScopesPage メソッドを最初に呼び出すときは、このパラメーターの値として VT_EMPTY を渡すと、最初の結果ページを取得できます。1 ページあたりの要素数は PageSize パラメーターの値によって決まります。出力時には、次の結果ページを取得するために GetAssignedScopesPage の次の呼び出しに渡す値がこのパラメーターに格納されます。出力時のこのパラメーターの値が EMPTY の場合、これ以上の結果ページはありません。
pvarScopeNamesVARIANT*out戻り時に、VARIANT 型の変数の配列が格納されます。配列の各要素は VT_BSTR 型で、現在のクライアントが割り当てられているスコープの名前が格納されます。配列の要素数は PageSize パラメーターで指定されます。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

解説(Remarks)

複数のスレッドが同じ承認ストアにアクセスする場合、あるスレッドがストアを変更すると、別のスレッドでの GetAssignedScopesPage メソッドの呼び出しが正確な結果を返さないことがあります。

JScript では、返された SAFEARRAY の値を JScript の Array オブジェクトに変換する必要があります。

vtbl 21 HRESULT AddRoles(VARIANT varRoles, LPWSTR bstrScopeName)

既存の IAzRole オブジェクトの指定された配列をクライアントコンテキストに追加します。

varRolesVARIANTinクライアントコンテキストに追加する IAzRole オブジェクトを指定するロール名の配列です。
bstrScopeNameLPWSTRinロールの配列が適用されるスコープです。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

解説(Remarks)

varRoles 配列内の名前に対応する IAzRole オブジェクトは、指定されたスコープ内にあらかじめ存在している必要があります。

追加されたロールは、以降の AccessCheck メソッドおよび GetRoles メソッドの呼び出しで使用されます。

vtbl 22 HRESULT AddApplicationGroups(VARIANT varApplicationGroups)

既存の IAzApplicationGroup オブジェクトの指定された配列をクライアントコンテキストオブジェクトに追加します。

varApplicationGroupsVARIANTin追加する IAzApplicationGroup オブジェクトの配列です。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

解説(Remarks)

varApplicationGroups 配列内の IAzApplicationGroup オブジェクトは、承認ストア内にあらかじめ存在している必要があります。

追加されたロールは、以降の AccessCheck メソッドおよび GetRoles メソッドの呼び出しで使用されます。

vtbl 23 HRESULT AddStringSids(VARIANT varStringSids)

セキュリティ識別子 (SID) の文字列表現の配列をクライアントコンテキストに追加します。

varStringSidsVARIANTinクライアントコンテキストに追加する SID の文字列表現の配列です。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

vtbl 24 HRESULT put_LDAPQueryDN(LPWSTR bstrLDAPQueryDN)

LDAP クエリグループの評価時に使用するディレクトリオブジェクトのドメイン名を取得または設定します。(Put)

bstrLDAPQueryDNLPWSTRinLDAPクエリの評価に使用する識別名(DN)をBSTRで指定する。
vtbl 25 HRESULT get_LDAPQueryDN(LPWSTR* pbstrLDAPQueryDN)

LDAP クエリグループの評価時に使用するディレクトリオブジェクトのドメイン名を取得または設定します。(Get)

pbstrLDAPQueryDNLPWSTR*outLDAPクエリの評価に使用される識別名(DN)を格納したBSTRを受け取るポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IAzClientContext2 "{2B0C92B8-208A-488A-8F81-E4EDB22111CD}"
#usecom global IAzClientContext2 IID_IAzClientContext2 "{}"
#comfunc global IAzClientContext2_GetAssignedScopesPage  20 int,int,var,var
#comfunc global IAzClientContext2_AddRoles               21 int,wstr
#comfunc global IAzClientContext2_AddApplicationGroups   22 int
#comfunc global IAzClientContext2_AddStringSids          23 int
#comfunc global IAzClientContext2_put_LDAPQueryDN        24 wstr
#comfunc global IAzClientContext2_get_LDAPQueryDN        25 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。