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