我使用令牌来保护我的 Web API 网站,并从 AngularJS 客户端应用程序中使用此 API。
有了这个,我可以使用基于令牌的身份验证登录。我的问题是我无法获取UserId
Web API 控制器。
User.Identity.GetUserId()
和都RequestContext.Principal.Identity.GetUserId()
回来了null
。
如何UserId
进入ApiController
?
我使用令牌来保护我的 Web API 网站,并从 AngularJS 客户端应用程序中使用此 API。
有了这个,我可以使用基于令牌的身份验证登录。我的问题是我无法获取UserId
Web API 控制器。
User.Identity.GetUserId()
和都RequestContext.Principal.Identity.GetUserId()
回来了null
。
如何UserId
进入ApiController
?
如果您已经拥有不记名令牌,请在 javascript 中设置 Authorization 标头。
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();