gpt4 book ai didi

angularjs - User.Identity.GetUserId() 和 RequestContext.Principal.Identity.GetUserId() 在 WEB API Controller 中返回 NULL。使用基于 token 的身份验证

转载 作者:行者123 更新时间:2023-12-02 23:09:31 25 4
gpt4 key购买 nike

我使用 token 来保护我的 Web API 网站,并从 AngularJS 客户端应用程序使用此 API。

这样我就可以使用基于 token 的身份验证进行登录。我的问题是我无法在 Web API Controller 中获取 UserId

User.Identity.GetUserId()RequestContext.Principal.Identity.GetUserId() 均返回 null

如何在ApiController中获取UserId

最佳答案

如果您已有不记名 token ,请在 JavaScript 中设置授权 header 。

var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
headers.Authorization = 'Bearer ' + token;
}

那么您应该在 ajax 请求中包含 header :

 $.ajax({
type: 'GET',
url: 'api/values/1',
headers: headers
}).done(function (data) {
self.result(data);
}).fail(showError);

最后在你的 Controller 中你可以通过以下方式获取用户ID:

var userId = RequestContext.Principal.Identity.GetUserId();

更多信息请参阅Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2

关于angularjs - User.Identity.GetUserId() 和 RequestContext.Principal.Identity.GetUserId() 在 WEB API Controller 中返回 NULL。使用基于 token 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38299526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com