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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top