【发布时间】:2016-07-31 14:42:19
【问题描述】:
我正在努力学习 Angular2
我正在尝试创建一个带有身份验证的简单博客。
这是我添加一个新的发布方法:
[Authorize]
// POST: api/Post
public PostModel Post([FromBody]PostViewModel model)
{
var post = new PostModel
{
Body = model.Body,
Title = model.Title,
AuthorId = IdentityExtensions.GetUserId(User.Identity),
};
var res = blogRepo.AddPost(post);
return res;
}
一切正常,但IdentityExtension.GetUserId() 不返回最近登录的用户,而是应用启动后的第一个用户。
基本上我正在寻找一种方法来确保当前用户在服务器和客户端上都注销(客户端只是简单地删除localStorage.removeItem("jwt");)
也很有可能我所做的是完全错误的,但我无法访问此控制器中的ApplicationUserManager。
【问题讨论】:
-
如何在 Angular2 应用程序中发送身份验证提示?谢谢!
-
我在我的Angular应用中做了两个Headers,一个用于正常调用,另一个用于经过身份验证的调用,例如这个,基本上在用户登录时在localStorage中存储了一个访问令牌,并使用授权在标头中发送此令牌:Bearer + token,在客户端,当用户注销并且新用户登录但不登录服务器时,令牌会更改
-
IdentityExtensions.GetUserId(User.Identity)是否使用某种缓存?它总是返回第一个登录的用户,这似乎很奇怪。它如何使用User.Identity参数? -
我真的不确定它是否使用缓存(我完全是角度和 web api + 基于令牌的身份验证的新手),我认为这里的问题是基于令牌的身份验证与正常存储的不同在数据库登录中,我只需要了解这个概念
标签: asp.net-web-api angular asp.net-web-api2 access-token