首页 > 解决方案 > 为什么创建自定义 AuthorizeAttribute 时 base.IsAuthorized 总是返回 false?

问题描述

这个过滤器检查以确保传入的参数是好的。它不会像检查会话令牌那样进行安全检查。

我想保留任何现有的安全/授权逻辑,并添加我的一点点来验证输入。

 public class ValidateMachineIdTokenAttribute : AuthorizeAttribute
    {
        protected override bool IsAuthorized(HttpActionContext actionContext)
        {
            var baseAuthorized = base.IsAuthorized(actionContext); // <-- always false
            CheckInput(actionContext); // throws exception if no good
            return true;
        }
       ...
   }

我可以忽略base.IsAuthorized,但就像我说的那样,我想保留任何安全措施。

标签: c#asp.net-web-apiasp.net-web-api2

解决方案


如果您不希望授权受到影响,则应改用ActionFilterAttribute


推荐阅读