0

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 がまだファイルへのハンドルを持っているためだと思います)。

呼び出しごとに承認ストアを更新するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

これが不思議なことに機能していることに気付いたので、これを閉じます。への呼びかけ

AuthorisationStore.UpdateCache();

が鍵です。なぜ以前はうまくいかなかったのかわかりませんが、何か間違ったことをしていたに違いありません...

于 2011-03-07T10:20:42.900 に答える