Обновление 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();

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

Другие вопросы по тегам