AZROLESLib COM 相互運用ライブラリを使用して AzMan にアクセスする単純な AzMan ラッパー クラスを .NET で作成しました。
基になる XML ストアに変更を加えた場合を除いて、すべて正常に動作します。これらの変更は、AZROLESLib への後続の呼び出しに反映されません。
コードは次のようになります。
クラス レベルでは、承認ストアへの参照を格納します。
IAzAuthorizationStore AuthorisationStore = new AzAuthorizationStoreClass();
クラスの構築中に、ストアを初期化します。
AuthorisationStore.Initialize(0, XML_STORE_PATH)
次のコードは、ロールをリクエストするたびに実行されます。
AuthorisationStore.UpdateCache();
var application = AuthorisationStore.OpenApplication(APPNAME);
// we do a query here and return the results
ただし、UpdateCache への呼び出しはまったく何もしていないようです。すべての呼び出しの後に CloseApplication を使用しようとしましたが、「要求はサポートされていません。(HRESULT からの例外: 0x80070032)」という例外がスローされるだけです。すべての呼び出しで AuthorisationStore を新たに作成すると、代わりに Access Denied 例外が発生します (古い Authorization Store がまだファイルへのハンドルを持っているためだと思います)。
呼び出しごとに承認ストアを更新するにはどうすればよいですか?
ありがとう!