Pare a continuação do ASP.NET MVC ActionFilter
-
20-09-2019 - |
Pergunta
Eu tenho dois filtros de ação personalizados em uma ação.
No primeiro dos Filters do Action, tenho um redirecionamento realizado se uma condição não for atendida (autorização clássica). E em outro, tenho um redirecionamento realizado se outra condição não for atendida (digamos a verificação de funções).
Mas não quero continuar para o segundo Filter de ação se o primeiro não for atendido. Como fazer isso?
Solução
Definindo o filterContext.Result
A propriedade para qualquer valor não nulo interromperá a execução de filtros posteriores. Então, se seus primeiros conjuntos de filtros filterContext.Result = new RedirectResult(...)
, o segundo método de filtro e ação nunca será executado. É assim que o embutido [Authorization]
Filtro funciona.