Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web API 2中重写承载令牌身份验证_C#_Asp.net_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

C# Web API 2中重写承载令牌身份验证

C# Web API 2中重写承载令牌身份验证,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我有一个混合使用MVC页面和SPA页面并由Web API调用支持的应用程序。Web API配置为使用承载令牌身份验证,MVC使用cookie身份验证。为了确保cookie和承载令牌都存在且有效,我进行了一个需要MVC页面授权的Web API调用,并尝试从SPA页面向覆盖身份验证的Web API方法进行等效调用,如下所示: [Authorize] public class TestController : ApiController { [OverrideAuthentication]

我有一个混合使用MVC页面和SPA页面并由Web API调用支持的应用程序。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两个问题。您从服务器返回什么响应头?您的web api配置是什么样子的?