【发布时间】:2012-03-17 23:40:16
【问题描述】:
我正在尝试在我的 Web API 控制器上实现自定义授权属性,但遇到了意外行为。
<Authorize(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
上面的代码运行得很好:它将允许 "myUser" 检索项目,机器人没有其他人被允许访问。但是,当我使用自定义授权尝试相同的方法时,会跳过整个检查,并且任何用户都可以访问该资源。我的派生类中的 AuthorizeCore 和 OnAuthorization 覆盖的方法都没有被调用。
<MyAuth(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
派生类继承自System.Web.Mvc.AuthorizeAttribute,项目部署在IIS上,Windows Authentication & Impersonation enabled,匿名身份验证 禁用。
如果我将相同的自定义授权添加到 MVC 控制器,那么它可以工作。但是在 API 控制器上,什么都没有。如果Authorize 属性也不起作用,它会更有意义。我错过了什么吗?这是预期的行为,还是 Beta 版中的错误?
【问题讨论】:
标签: asp.net-mvc-4 asp.net-web-api