我对MVC和WebAPI比较陌生,所以也许我做了一些愚蠢的想法。
我正在开始我的MVC + WebAPI项目。我刚刚配置了身份验证,但遇到了一个问题:[Authorize]属性对MVC控制器正常工作,而不适用于API(返回总是401错误)。
我需要一些API的特殊配置吗?我使用默认的ApplicationSignInManager(我的意思是启动项目tempalte中的一个)。
我删除了我的Authorize属性,我可以看到在MVC控制器的操作中,User.Identity包含我的登录用户,但API控制器对此一无所知。
答案 0 :(得分:3)
我已经弄清楚发生了什么。在默认项目模板中,我有WebApiConfig类,其中包含以下行:
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
这些线条将ApiContoller与其他应用程序分开。因此删除它们是我的问题。