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.