asp.net-mvc-4 – ASP.NET Web API的自定义MVC AuthorizeAttribu
我试图在我的Web API控制器上实现一个自定义授权属性,但遇到了一个意想不到的行为.
<Authorize(Users:="myUser")> Public Function GetTodoItems() As IQueryable(Of TodoItem) 上面的代码工作得很好:它将允许“myUser”检索项目,bot没有人被允许访问.但是,当我通过自定义授权尝试相同的方法时,将跳过整个检查,任何用户都可以访问该资源.我的派生类中的AuthorizeCore和OnAuthorization被覆盖的方法都不被调用. <MyAuth(Users:="myUser")> Public Function GetTodoItems() As IQueryable(Of TodoItem) 派生类继承自System.Web.Mvc.AuthorizeAttribute,该项目部署在IIS上,Windows Authentication&启用模拟,禁用匿名身份验证. 如果我添加相同的自定义授权给MVC控制器,那么它的工作.但在API控制器上,什么也没有.如果授权属性也不会有效,那就更有意义了.我错过了什么吗?这是预期的行为还是测试版中的错误? 解决方法
您应该使用System.Web.Http.Attribute从System.Web.Http.dll为Web API而不是System.Web.Mvc.AuthorizeAttribute.
也就是说,因为名称空间System.Web.Http.AuthorizeAttribute是从AuthorizationFilterAttribute派生的.过滤器由Web API自动处理.在我自己的实现中,我直接从AuthorizationFilterAttribute派生来处理基本的HTTP身份验证. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – NHibernate:我如何XmlSerialize一个ISet?
- asp.net – 如何将Sitecore Droptree源设置为项目本身
- asp.net – 使用Visual Studio 2008 Web部署项目 – 找到as
- asp.net – 如何在Dotnetnuke中更改Radcaptcha的音频文件
- 难道.NET Core到R2连中文编码都不支持吗?
- Asp.Net MiddleWare与HttpModules
- asp.net – 如何在Visual Studio 2010中设置Umbraco cms?
- asp.net-mvc – 如何处理MVC中的页面流(特别是asp.net)
- asp.net-mvc – Azure git部署 – 第二个程序集中缺少引用
- asp.net-mvc – MVC5架构中的Identity 2.0.0建议