HttpActionContext 在方法中给出错误消息

问题描述 投票:0回答:1

我今天将 .net Framework 4.6 中的 webapi 升级到 8.0 web api core,收到错误消息 下面来自 IsAuthorized 方法

“找不到类型或命名空间名称“HttpActionContext”(是否缺少 using 指令或程序集引用?)”

        public class CustomApiAuthorizeAttribute : AuthorizeAttribute
        {
            [Inject]

            public IUnitOfWork UnitOfWork { private get; set; }
         
            protected override bool IsAuthorized(HttpActionContext actionContext)
            {
                var principal = actionContext.RequestContext.Principal;

                if (!principal.Identity.IsAuthenticated)

                    return false;

                return UnitOfWork.IsUserAuthorized(principal.Identity.Name.Substring(5));
            }
        }

我该如何解决这个问题?

asp.net-core asp.net-web-api
1个回答
0
投票

您可以通过使用过滤器来实现相同的目标

与此类似的东西:

public class CustomApiAuthorizeAttribute :Attribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        if(context.HttpContext.User.Identity != null && context.HttpContext.User.Identity.IsAuthenticated)
        {
            // do your work
        }
    }
}

虽然我没有测试过

© www.soinside.com 2019 - 2024. All rights reserved.