Adición a la colección ViewData [] de AuthorizeAttribute Extensión
-
20-09-2019 - |
Pregunta
escribí una clase de extensión para personalizar mi AuthorizeAttribute para mis métodos de acción y me gustaría ser capaz de inyectar mensajes en mi punto de vista cuando se cumple una determinada condición. I "m con el siguiente código para cargar una visión compartida cuando un usuario no está autorizado pero no es la adición de mi mensaje a mi colección ViewData. ¿Alguna idea?
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (IsNotAuthorized)
{
filterContext.Result = new ViewResult { ViewName = "NotAuthorized" };
filterContext.Controller.ViewData["Message"] = "Go Away";
}
}
También he intentado configurar mi ViewData [ "mensaje"] elemento de la colección encima de la llamada para cambiar la vista sin éxito.
Solución
¿Has probado;
filterContext.Result = new RedirectResult("Home/Index");
No sé cómo agregar el ViewData pero esto va a llegar al controlador no autorizado al menos.
Voy a seguir buscando código para agregar para ver los datos en la media hora o hasta que alguien envía a él.
editar
Esto puede ayudar;
Cambiar los valores ActionExecutingContext en Filtro personalizado Atributo