ASP.NET MVC-Rollen und -Sicherheit

Angenommen, dies ist meine SampleController-Aktionsmethode

public ActionResult AdminView()
{
    return View()
}

Wenn diese Controllermethode aufgerufen werden soll, wenn der angemeldete Benutzer der Administratorrolle angehört, sollte dieser Methodenaufruf blockiert werden und der Benutzer sollte eine benutzerdefinierte Fehlerseite für nicht autorisierten Zugriff erhalten.

Wenn sich der Benutzer in meiner asp .net mvc-Webanwendung anmeldet, speichere ich die Benutzerrolle in einer Sitzung als Zeichenfolge. Und wenn die Benutzerrolle validiert werden muss, vergleiche ich den in der Sitzung gespeicherten Wert mit der Konstanten say "ADMIN_ROLE". Aber ich schreibe diesen Code, um in fast jeder Controller-Aktionsmethode nach der Benutzerrolle zu suchen und dann entweder eine entsprechende Ansicht für den Benutzer oder eine nicht autorisierte Zugriffsseite zurückzugeben, wenn die Benutzerrolle für die Controller-Aktionsmethode eingeschränkt ist.

Ich habe gegoogelt und gelesen, dass wir so etwas gebrauchen können.

[Authorize(Roles="admin")]
public ActionResult AdminView()
{
  return View()
}

Ich bin mir jedoch nicht sicher, wie das Schlüsselwort Authorize und Roles funktioniert. Wie kann ich beim Setzen von Roles = "Admin" die in der Sitzung gespeicherte Benutzerrollenzeichenfolge überprüfen oder einen Benutzer auf eine nicht autorisierte Seite umleiten, falls die Rolle nicht mit der für die Aktionsmethode markierten Rolle übereinstimmt?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage