Атрибут MVC не работает для отдельных действий при применении к контроллеру - PullRequest
0 голосов
/ 31 марта 2019

У меня есть пользовательский атрибут, определенный следующим образом:

public class SkipAuthentication : Attribute
{

}

, и я использовал его для украшения контроллера следующим образом:

[SkipAuthentication]
public class AccountTypeController : Controller
{
    // GET: /AccountType/Create
    [HttpGet]
    public ActionResult Create()
    {
        try
        {
            return View();
        }
        catch (Exception ex)
        {
            ViewBag.ResMessege = ResMessege.getDanger(ex.Message);
            return View();
        }
    }
}

Теперь я ожидаю, что он должен быть применен квсе действия внутри контроллера,

public class FebTechFilters : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.ActionDescriptor.GetCustomAttributes(typeof(SkipAuthentication), false).Any())
        {
            return;
        }

        if (null == filterContext.HttpContext.Session.Contents["UserId"])
        {
            filterContext.Result = new RedirectResult("~/Login/Index");
        }

        base.OnActionExecuting(filterContext);
    }
}

, но когда я вызываю это, filterContext.ActionDescriptor.GetCustomAttributes(typeof(SkipAuthentication), false).Any() я получаю это как false Чего мне не хватает?

...