我有一个应用程序,它使用混合的MVC页面和由Web API调用支持的SPA页面。 Web API配置为使用承载令牌身份验证,MVC使用cookie身份验证。为了确保cookie和持有者令牌都存在和有效的,我进行了一个需要MVC页面授权的Web API调用,我试图从SPA页面调用等效的调用覆盖认证的Web API方法,如下所示:
[Authorize]
public class TestController : ApiController
{
[OverrideAuthentication]
[HostAuthentication(DefaultAuthenticationTypes.ApplicationCookie)]
public IHttpActionResult GetIsAuthenticatedCookie()
{
return Ok(true);
}
//other methods that use bearer token authentication excluded for brevity
}
无论出于何种原因,这都行不通;无论是否存在有效的cookie,请求始终是未经授权的。我无法弄清楚我做错了什么。我可以通过调用MVC操作轻松替换上面方法的调用,这可以避免这个问题,但我想理解为什么这不能按预期工作。
我正在使用MVC v5.2和Web API v2.2