2011-02-23 73 views
0

我們在.NET中編寫了一個簡單的AzMan封裝類,它使用AZROLESLib COM互操作庫訪問AzMan。通過AZROLESLib刷新AzMan

這一切都正常,除非我們對底層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仍然有文件的句柄?)。

如何讓授權存儲在每次調用時刷新自己?

謝謝!

回答

0

我正在關閉這個,因爲我注意到這是現在神祕的工作;致電

AuthorisationStore.UpdateCache(); 

是關鍵之一。我不知道爲什麼它以前沒有工作,但它一定是我做錯了什麼...

+0

繼續並接受你自己的答案作爲接受的答案(點擊複選標記),所以這不請保持出現作爲「未回答」的問題。 – 2011-07-27 21:01:47