Обновить роль текущего пользователя при изменении в платформе удостоверений ASP.NET?

Использование VS 2013, стандартный шаблон MVC и инфраструктура провайдера идентификации

Пользователь вошел в систему, и у меня есть:

//....
UserManager.AddToRole(User.Identity.GetUserId(), "Members");       # Line X
RedirectToAction("Index", "Members");

И контроллер Члены выглядит следующим образом:

[Authorize(Roles="Members")]
public class MembersController : Controller
{
    // GET: Members
    public ActionResult Index()
    {
        return View();
    }
}

После выполнения строки X я могу подтвердить, что пользователь добавлен в таблицуdbo.AspNetUserRoles, Тем не менее, пользователь при достижении контроллера членов не проходит проверку роли.User.IsInRole("Members") возвращает ложь

Если пользователь выходит из системы, а затем снова входит в систему, то доступ к контроллеру членов будет проходить, т.е.User.IsInRole("Members") теперь возвращает истину.

Есть ли какое-то кеширование? Почему задержка? Как мне это преодолеть?

Я также попытался преобразовать метод в строке X в асинхронный метод и использовалUserManager.AddToRoleAsync, Тот же задержанный эффект все еще там.

Ответы на вопрос(1)

Ваш ответ на вопрос