添加新声明时更新记录的身份声明

Update logged Identity claims when add new claims

我有一个带有 angular 的 .net 核心 Web api 应用程序。我使用 AspNetCore 身份。我有一个带有 userId 和值列的声明 table。来自 angular 站点的 createnewuser 方法调用,他们调用注册用户方法。这里没有任何问题。

我想在 httpcontext current user claims 列表中添加新声明。 我试过了,但对我没有帮助。

但是当使用新令牌重新验证时,我可以看到在 _httpContext.HttpContext.User.Claims 中添加了新声明。如何查看将新声明添加到当前身份 (_httpContext.HttpContext.User.Claims)?

并且我从 httpontext 获得了当前用户 ID 值。

var parentId = _httpContext.HttpContext.User.Claims?.FirstOrDefault(p => p.Type == "uid");
                     if (parentId != null && parentId.Value != null)
                     {
                        await _IdentityService.AddClaimAsync(new RegisterRequest()
                         {
                          "newclaim" = "new-claim-key",
                          userId = parentId.Value
                      });

我认为最好的方法是从像这样登录的数据库中获取声明:

var claimList = userManager.
GetClaimsAsync(await_userManager.GetUserAsync(_httpContext.HttpContext.User))

虽然这不是一个非常准确的方法,但却是最可靠的方法。这样就可以在db

中得到最新的claim列表