在Web API 2中覆盖承载令牌身份验证

时间:2014-07-21 18:21:59

标签: c# asp.net asp.net-mvc asp.net-web-api

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

0 个答案:

没有答案