Role i zabezpieczenia ASP.NET MVC

Załóżmy, że jest to moja metoda akcji SampleController

public ActionResult AdminView()
{
    return View()
}

Jeśli chcesz, aby ta metoda kontrolera była wywoływana, jeśli zalogowany użytkownik należy do roli administratora, w przeciwnym razie wywołanie tej metody powinno zostać zablokowane, a użytkownik powinien uzyskać niestandardową stronę błędu nieautoryzowanego dostępu.

W mojej aplikacji internetowej asp .net mvc, gdy użytkownik się loguje, przechowuję rolę użytkownika w sesji jako ciąg. Ilekroć zachodzi potrzeba sprawdzenia roli użytkownika, porównuję wartość zapisaną w sesji ze stałą mówiąc „ADMIN_ROLE”. Ale piszę ten fragment kodu, aby sprawdzić rolę użytkownika w prawie każdej metodzie działania kontrolera, a następnie albo zwrócić odpowiedni widok dla użytkownika, albo nieautoryzowany widok strony, jeśli rola użytkownika jest ograniczona do metody działania kontrolera.

Wyszukałem hasło i przeczytałem, że możemy użyć czegoś takiego.

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

Ale nie jestem pewien, jak działa słowo kluczowe Autoryzuj i Role. Jak podczas umieszczania Roles = „Administrator” pomoże sprawdzić ciąg ról użytkownika przechowywany w sesji lub sposób, w jaki mogę przekierować użytkownika na nieautoryzowaną stronę, w przypadku, gdy rola nie pasuje do roli oznaczonej dla metody akcji.

questionAnswers(3)

yourAnswerToTheQuestion