我有一个带有webapi控制器的MVC应用程序。
当用户被授权时,他可以访问应用程序中的所有mvc [Authorize]
控制器操作。但是,由于某些原因,当我在位于我的应用程序[Authorize]
用户上的WebApi控制器上设置属性authenicated
时,服务器将返回用户401 Unauthorized
。
[Authorize]
public class FilesController : ApiController
通过对找出的研究,认为WebApi的[Authorize]
属性实际上是System.Web.Http.AuthorizeAttribute
,而对于mvc控制器则是System.Web.Mvc.AuthorizeAttribute
。
如果用户是在mvc >控制器级别被授权的,那么是否有任何方法来设置应用程序,以便他也能获得webapi的授权?
我试图将WebApi属性更改为[System.Web.Mvc.Authorize]
,但这不是要工作的接缝。
看起来我必须做一些类似于这的事情,使用这个图书馆,你有什么想法吗?
发布于 2015-04-14 06:38:39
我看不出在MVC和Web中将用于身份验证/授权的筛选器放在单个筛选器中的好方法,因为它们有非常不同的行为。对于MVC请求,当用户授权失败时,您希望将它们重定向到另一个页面,或者以另一个用户的身份登录,或者只是让他们知道他们没有访问该页面的权限。对于Web API请求,当用户授权失败时,您希望发送一个HTTP状态代码,该代码指示授权失败并让客户端处理它。
https://stackoverflow.com/questions/29620439
复制相似问题