Adicionando à coleção ViewData [] da Autorizeattribute Extension
-
20-09-2019 - |
Pergunta
Escrevi uma aula de extensão para personalizar meu Autorizeattribute para meus métodos de ação e gostaria de poder injetar mensagens em minha opinião quando uma determinada condição for atendida. Estou usando o código abaixo para carregar uma visualização compartilhada quando um usuário não está autorizado, mas não está adicionando minha mensagem à minha coleção ViewData. Alguma idéia?
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (IsNotAuthorized)
{
filterContext.Result = new ViewResult { ViewName = "NotAuthorized" };
filterContext.Controller.ViewData["Message"] = "Go Away";
}
}
Também tentei definir meu item de coleção do ViewData ["Mensagem"] acima da chamada para alterar a visualização sem sucesso.
Solução
Você tentou;
filterContext.Result = new RedirectResult("Home/Index");
Não sei como adicionar o ViewData, mas isso o levará ao controlador não autorizado, pelo menos.
Continuarei procurando código para adicionar para visualizar os dados nesse meio tempo ou até que alguém os publique.
editar
Isso pode ajudar;
Alterando os valores da ação de ação decepcioning no atributo de filtro personalizado