System.Web.Http.Authorize与System.Web.Mvc.Authorize

哪个授权属性?
System.Web.Http.Authorize
System.Web.Mvc.Authorize

using System.Web.Mvc // or using System.Web.Http 

典型的控制器

  [Authorize] public class SomeController : Controller 

我们有控制器用[Authorize]注解我只注意到,由于使用了命名空间 ,注释技术上指的是不同的属性类。

该项目包含MVC控制器和WEBAPI控制器。

我应该使用哪一个,为什么? 如果我不解决这个问题,我们可能会遇到什么问题?

您必须针对ApiController (Web API控制器)和System.Web.Mvc.AuthorizeController (MVC控制器)使用System.Web.Http.Authorize 。 由于框架作为stream水线处理的一部分运行filter,并且控制器期望应用正确的filter,所以如果不使用相应的filter,授权将不起作用。