通过AuthorizeAttribute
实施访问原则的以下两种方式之间有什么区别?
使用HttpContext
:
protected override bool IsAuthorized(HttpActionContext actionContext)
{
return HttpContext.Current.User.IsInRole("DemoRole");
}
使用HttpActionContext
:
protected override bool IsAuthorized(HttpActionContext actionContext)
{
return actionContext.RequestContext.Principal.IsInRole("DemoRole");
}
答案 0 :(得分:1)
它们是相同的,您可以通过在方法中包括以下行来证明这一点:
Debug.Assert(actionContext.RequestContext.Principal == HttpContext.Current.User);
我个人会使用actionContext
,因为使用HttpContext.Current
会创建一个依赖项,并且使它变得更难例如单元测试。