Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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# 来自WP8的访问令牌在WebApi 2端点上不起作用_C#_Asp.net Mvc_Windows Phone 8_Asp.net Web Api_Asp.net Identity - Fatal编程技术网

C# 来自WP8的访问令牌在WebApi 2端点上不起作用

C# 来自WP8的访问令牌在WebApi 2端点上不起作用,c#,asp.net-mvc,windows-phone-8,asp.net-web-api,asp.net-identity,C#,Asp.net Mvc,Windows Phone 8,Asp.net Web Api,Asp.net Identity,我有一个带有WebApi 2后端的基本SPA模板,它使用Microsoft帐户作为外部登录提供程序。我还有一个WP8客户端,其中用户可以使用其Microsoft帐户登录,SPA和WP8客户端都使用ClientId,因此具有相同电子邮件地址的用户在两个客户端中获得相同的标识符。数据库中存储的ProviderKey与同一用户登录手机时的id相匹配 当用户通过浏览器登录时,我可以获得他们的访问令牌,并通过承载令牌验证他们针对api提出的进一步请求,这很好,每次返回200。在WP8客户端上,它不起作用,

我有一个带有WebApi 2后端的基本SPA模板,它使用Microsoft帐户作为外部登录提供程序。我还有一个WP8客户端,其中用户可以使用其Microsoft帐户登录,SPA和WP8客户端都使用ClientId,因此具有相同电子邮件地址的用户在两个客户端中获得相同的标识符。数据库中存储的ProviderKey与同一用户登录手机时的id相匹配

当用户通过浏览器登录时,我可以获得他们的访问令牌,并通过承载令牌验证他们针对api提出的进一步请求,这很好,每次返回200。在WP8客户端上,它不起作用,但是,我是这样获得令牌的:

LiveAuthClient Auth = new LiveAuthClient("0000000041422E16");
//some code removed
LiveConnectClient connect = new LiveConnectClient(Auth.Session);
string access_token = connect.Session.AccessToken;
//use token to send a http request to an authorized endpoint

我使用Fiddler测试访问令牌,WebApi总是返回401,我在这里做错了什么?Live SDK客户端发送回的令牌对于WebApi端点上的身份验证是否有效

您正在正确获取令牌,但无法发出下一个服务请求?如果是,那么请分享一些代码,说明您在获取令牌后如何尝试获取令牌。在这一点之后,代码就不多了,因为我在Fiddler中创建了一个到受保护端点的GET请求,并将该令牌设置为授权头,我相信我正确地获取了这一部分,因为当我使用从web浏览器接收到的令牌时,它会工作,但是,对于从WP8客户端接收的令牌,它不起作用。