gpt4 book ai didi

asp.net-mvc-4 - ASP.NET Web API 的自定义 MVC AuthorizeAttribute

转载 作者:行者123 更新时间:2023-12-03 21:11:38 24 4
gpt4 key购买 nike

我正在尝试在我的 Web API Controller 上实现自定义授权属性,但遇到了意外行为。

     <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 身份验证和模拟,禁用匿名身份验证。

如果我将相同的自定义授权添加到 MVC Controller ,则它可以工作。但是在 API Controller 上,什么都没有。如果 Authorize属性也不会起作用,它会更有意义。我错过了什么吗?这是预期的行为,还是 Beta 版中的错误?

最佳答案

您应该使用 System.Web.Http.AuthorizeAttribute来自 System.Web.Http.dll for Web API 而不是 System.Web.Mvc.AuthorizeAttribute .

也就是说,因为 namespace System.Web.Http.AuthorizeAttribute源自 AuthorizationFilterAttribute .过滤器由 Web API 自动处理。在我自己的实现中,我直接派生自 AuthorizationFilterAttribute用于处理基本的 HTTP 身份验证。

关于asp.net-mvc-4 - ASP.NET Web API 的自定义 MVC AuthorizeAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com