Refresh aktuelle Benutzerrolle, wenn in ASP.NET Identity Framework geändert?

Verwenden Sie VS 2013, die Standard-MVC-Vorlage und das Identity Provider-Framework

Der Benutzer ist angemeldet und ich habe:

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

Und der Members-Controller sieht folgendermaßen aus:

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

Nach Ausführung von Zeile X kann ich bestätigen, dass der Benutzer der Tabelle hinzugefügt wurdedbo.AspNetUserRoles. Der Benutzer hat jedoch beim Erreichen des Members-Controllers die Rollenprüfung nicht bestanden.User.IsInRole("Members") gibt false zurück.

Wenn sich der Benutzer abmeldet und erneut anmeldet, wird der Zugriff auf den Members-Controller durchlaufen, dhUser.IsInRole("Members") gibt jetzt true zurück.

Gibt es Caching? Warum die Verzögerung? Wie überwinde ich das?

Ich habe auch versucht, die Methode in Zeile X in eine asynchrone Methode umzuwandeln und @ verwendeUserManager.AddToRoleAsync. Der selbe verzögerte Effekt ist immer noch da.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage