使用AuthorizeAttribute进行ASP.NET Web API授权

Mor*_*son 59 rest asp.net-web-api

使用新的ASP.NET Web API测试版.我似乎无法获得建议的用户身份验证方法.建议的方法似乎是,将[Authorize]过滤器添加到API控制器.例如:

[Authorize] 
public IEnumerable<Item> Get()
{
    return itemsService.GetItems();
}
Run Code Online (Sandbox Code Playgroud)

但这并不像预期的那样有效.请求资源时,您将被重定向到登录表单.哪个不适合RESTful webapi.

我该怎么办呢?它在未来的版本中会有不同的工作吗?或者我应该回到实现我自己的动作过滤器?

Ale*_*Gad 94

仔细检查您使用的是System.Web.Http.AuthorizeAttribute而不是System.Web.Mvc.AuthorizeAttribute.这个比特我以前.我知道WebAPI团队正试图将所有内容整合在一起,以便MVC用户熟悉它,但我认为有些事情是不必要的混淆.