首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用AuthorizeAttribute进行ASP.NET Web API授权

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

Stack Overflow用户
提问于 2012-03-02 18:13:49
回答 5查看 45.9K关注 0票数 60

使用新的ASP.NET Web API测试版。我似乎不能得到建议的方法来验证用户,以工作。建议的方法似乎是将[Authorize]过滤器添加到API控制器。例如:

代码语言:javascript
复制
[Authorize] 
public IEnumerable<Item> Get()
{
    return itemsService.GetItems();
}

然而,这并不能像预期的那样工作。在请求资源时,您会被重定向到登录表单。这并不是很适合RESTful webapi。

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-03 07:34:12

仔细检查您使用的是System.Web.Http.AuthorizeAttribute而不是System.Web.Mvc.AuthorizeAttribute。这之前咬了我一口。我知道WebAPI团队正试图将所有的东西整合在一起,以便让MVC用户熟悉,但我认为有些事情是不必要的混乱。

票数 96
EN

Stack Overflow用户

发布于 2012-03-14 21:46:33

最后,我在ASP.NET MVC 4 WebAPI authorization上找到了一个解决方案

本文将向您展示如何解决此问题。

票数 3
EN

Stack Overflow用户

发布于 2012-05-21 17:45:05

您将被重定向到登录页面,因为窗体身份验证模块会自动执行此操作。为了摆脱这种行为,请按照Paul的建议禁用forms身份验证。如果您希望使用更多REST友好方法,则应该考虑实现HTTP授权支持。看看这篇博文http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-membership-provider/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9531475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档