Funciones y seguridad de ASP.NET MVC

Supongamos que este es mi método de acción SampleController

public ActionResult AdminView()
{
    return View()
}

Si desea que se llame a este método del controlador si el usuario que ha iniciado sesión pertenece a la función de administrador, de lo contrario, esta llamada al método debería bloquearse y el usuario debería obtener una página personalizada de error de acceso no autorizado.

En mi aplicación web .NET mvc, cuando el usuario inicia sesión, estoy almacenando el rol de usuario en una sesión como una cadena. Y siempre que sea necesario validar el rol del usuario, comparo el valor almacenado en la sesión con una constante que diga "ADMIN_ROLE". Pero estoy escribiendo ese fragmento de código para verificar el rol del usuario en casi todos los métodos de acción del controlador y luego devolver una vista apropiada para el usuario o una vista de página de acceso no autorizado si el rol del usuario está restringido para el método de acción del controlador.

Busqué en Google y leí que podemos usar algo como esto.

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

Pero no estoy seguro de cómo funciona la palabra clave Autorizar y Roles. Cómo al poner Roles = "Admin", me ayudará a verificar mi cadena de rol de usuario almacenada en la sesión, o cómo puedo redirigir a un usuario a una página no autorizada, en caso de que el rol no coincida con el rol etiquetado para el método de acción.