Я использую ASP.NET Sitemaps с пользовательским поставщиком ролей для создания меню сайта, в котором отображаются доступные ссылки в зависимости от роли пользователя.
Это прекрасно работает, если роли не меняются, когда пользователь вошел в систему.
Когда роли меняются, когда пользователь вошел в систему, меню не обновляется автоматически (я проверил, а Roles.GetRolesForUser () вызывается только при входе в систему). Это приводит к тому, что пользователь имеет доступ к тем областям сайта, на которые у него нет прав доступа. Этот доступ не только визуальный (в форме отображаемых элементов меню), но и ограничения доступа, определенные в Web.config, также не применяются.
Есть ли способ вызвать обновление меню / контроля доступа при смене ролей? Или мне нужно принудительно выйти из системы?
Заранее спасибо
РЕДАКТИРОВАТЬ: Я только что понял, что у меня был включен cacheRolesInCookie диспетчера ролей, что означало, что GetRolesForUser () срабатывал только один раз, и любые дальнейшие проверки ролей выполнялись с использованием куки. Есть ли какой-нибудь способ обновить куки программно или мне нужно жить с выключенным кешем? Может быть, простое удаление cookie решит это?