Обновление AzMan через AZROLESLib - PullRequest
0 голосов
/ 23 февраля 2011

Мы написали простой класс-оболочку AzMan в .NET, который использует библиотеку взаимодействия COM 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 при каждом вызове, вместо этого я получаю исключение «Отказано в доступе» (я полагаю, потому что старое хранилище авторизации все еще имеет дескриптор файла?).

Как я могу заставить хранилище авторизации обновляться при каждом вызове?

Спасибо!

1 Ответ

0 голосов
/ 07 марта 2011

Я закрываю это, поскольку я заметил, что это теперь таинственно работает; звонок на

AuthorisationStore.UpdateCache();

является ключевым. Я понятия не имею, почему это не сработало раньше, но, должно быть, я что-то не так делал ...

...