我今天将 .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));
}
}
我该如何解决这个问题?
您可以通过使用过滤器来实现相同的目标
与此类似的东西:
public class CustomApiAuthorizeAttribute :Attribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
if(context.HttpContext.User.Identity != null && context.HttpContext.User.Identity.IsAuthenticated)
{
// do your work
}
}
}
虽然我没有测试过