Обновление AzMan через AZROLESLib
Мы написали простой класс-оболочку 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 ответ
Я закрываю это, поскольку я заметил, что это теперь таинственно работает; призыв к
AuthorisationStore.UpdateCache();
является ключевым. Я понятия не имею, почему это не сработало раньше, но, должно быть, я что-то не так делал...