如何修改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中的标识值。校长?
我认为要减少拥有"ChangeSessionCustomer"的复杂性,我只需重新授权用户并分配一个新的令牌。