我有一个应用程序,它使用混合的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