AuthorizeAttribute 适用于 MVC 控制器,但不适用于 ApiController
本文关键字:适用于 不适用 ApiController 控制器 MVC AuthorizeAttribute | 更新日期: 2023-09-27 18:35:33
我对MVC和WebAPI比较陌生,所以也许我在做一些愚蠢的想法。
我正在开始我的MVC + WebAPI项目。我刚刚配置了身份验证,但遇到了一个问题:[授权] 属性适用于 MVC 控制器,不适用于 API(始终返回 401 错误)。
我需要一些特殊的 API 配置吗?我正在使用默认的应用程序登录管理器(我的意思是启动项目临时管理器)。
我已经删除了我的授权属性,我可以看到在MVC控制器User.Identity的操作中包含了我的登录用户,但API控制器对此一无所知。
我已经弄清楚发生了什么。在默认项目模板中,我有具有以下行的 WebApiConfig 类:
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
这些线将ApiContoller与其他应用程序分开。因此,删除它们解决了我的问题。