如何修改Web Api中的Identity值2

本文关键字:中的 Api Identity Web 何修改 修改 | 更新日期: 2023-09-27 18:04:46

我正在开发一个web api,使用基于OAuth令牌的身份验证。

当令牌生成时,我在标识处注册。

var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
 identity.AddClaim(new Claim("CustomerId", usuario.IdCustomer.ToString()));
  var principal = new GenericPrincipal(identity, new string[] { role.Profile.ToString() });
                Thread.CurrentPrincipal = principal;
                context.Validated(identity);

在指定时刻,我需要更改一个身份声明值。我可以访问和操作它,但是修改不会生效。

[Authorize]
    [HttpPatch]
    [Route("current/customer/{id}")]
    public async Task ChangeSessionCustomer(int id)
    {
        var context = HttpContext.Current;
        IAuthenticationManager AuthenticationManager = context.GetOwinContext().Authentication;
        var identity = (ClaimsIdentity)User.Identity;
        var claimCustomerId = identity.FindFirst("CustomerId");
        identity.RemoveClaim(claimCustomerId);
        identity.AddClaim(new Claim("CustomerId", id.ToString()));
    }

可能会改变red中的标识值。校长?

如何修改Web Api中的Identity值2

我认为要减少拥有"ChangeSessionCustomer"的复杂性,我只需重新授权用户并分配一个新的令牌。