使用新的 ASP.NET Web API 测试版。我似乎无法让建议的用户身份验证方法发挥作用。建议的方法似乎是将 [Authorize]
过滤器添加到 API Controller 。例如:
[Authorize]
public IEnumerable<Item> Get()
{
return itemsService.GetItems();
}
但这并没有按预期工作。请求资源时,您会被重定向到登录表单。这不太适合 RESTful webapi。
我应该如何进行此操作?它在未来版本中的工作方式会有所不同吗?还是我应该回退到实现我自己的操作过滤器?
最佳答案
仔细检查您是否使用的是System.Web.Http.AuthorizeAttribute
,而不是System.Web.Mvc.AuthorizeAttribute
。这个以前咬过我。我知道 WebAPI 团队正在尝试将所有内容整合在一起,以便 MVC 用户熟悉它,但我认为有些事情是不必要的困惑。
关于rest - 使用 AuthorizeAttribute 进行 ASP.NET Web API 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9531475/