Angularjs User.Identity.GetUserId()和RequestContext.Principal.Identity.GetUserId()在WEB API控制器中返回NULL。使用基于令牌的身份验证
我使用令牌来保护我的Web API网站,并从AngularJS客户端应用程序中使用该API 有了它,我就可以使用基于令牌的身份验证登录。我的问题是,我无法在Web API控制器中获取Angularjs User.Identity.GetUserId()和RequestContext.Principal.Identity.GetUserId()在WEB API控制器中返回NULL。使用基于令牌的身份验证,angularjs,asp.net-web-api,http-token-authentication,Angularjs,Asp.net Web Api,Http Token Authentication,我使用令牌来保护我的Web API网站,并从AngularJS客户端应用程序中使用该API 有了它,我就可以使用基于令牌的身份验证登录。我的问题是,我无法在Web API控制器中获取用户ID User.Identity.GetUserId()和RequestContext.Principal.Identity.GetUserId()都返回null 如何在ApiController中获取UserId?如果您已经有一个承载令牌,请在javascript中设置授权标头 var token = sess
用户ID
User.Identity.GetUserId()
和RequestContext.Principal.Identity.GetUserId()
都返回null
如何在
ApiController
中获取UserId
?如果您已经有一个承载令牌,请在javascript中设置授权标头
var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
headers.Authorization = 'Bearer ' + token;
}
然后,您应该在ajax请求中包含标题:
$.ajax({
type: 'GET',
url: 'api/values/1',
headers: headers
}).done(function (data) {
self.result(data);
}).fail(showError);
最后,在控制器中,您可以通过以下方式获取用户id:
var userId = RequestContext.Principal.Identity.GetUserId();
有关更多信息,请参阅您使用的是什么框架?ASP.NET身份?是的。身份2.0,MVC5。WEB APIUser.Identity.GetUserId()应返回当前登录用户的用户ID。在调用WebAPI时,您是否在授权标头中尝试使用登录用户(传递承载AuthToken)?已解决。。将AuthToken作为标头传递时出现问题。现在它运转良好。。谢谢…@RohitV请解释一下或分享一些代码片段,你是如何解决你的问题的,我也收到了同样的问题谢谢!