【发布时间】:2014-01-17 10:13:42
【问题描述】:
我有一个现有的 MVC 应用程序,其自定义授权属性覆盖 System.Web.Mvc.AuthorizeAttribute。
我现在需要将 Web API 添加到项目中,但只允许授权用户访问。 如果我将自定义授权属性添加到 API 控制器,它似乎会被忽略并允许任何人不受限制地访问。
经过一番reading,我发现要授权用户使用Web API,您必须使用System.Web.Http.AuthorizeAttribute版本的authorize属性。
但是,在我的 API 控制器中添加了 Http 版本的授权属性,并在我的 Mvc 控制器中保留了授权属性的 Mvc 版本后,我对 API 的请求现在总是返回 401 - 未经授权,即使在登录时也是如此.
然后我尝试删除我的自定义 [Mvc] 授权属性并改用标准版本并遇到同样的问题。
This question 描述了一个类似的问题,并尝试通过合并两个命名空间中的类来解决它。这对我来说听起来不是一个很好的解决方案,因为我真的不需要自定义 API 授权属性。
我在这里做错了什么?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api authorization