ASP.NET Core 認証後に Claim の内容を書き換える

Programming
公開: 2022-11-29

コード

古い Claim を削除して、新しい Claim を追加

var authenticateResult = await HttpContext.AuthenticateAsync();
if (authenticateResult.Succeeded)
{
    var claimsIdentity = authenticateResult.Principal.Identity as ClaimsIdentity;
    if (claimsIdentity != null)
    {
        var oldCompanyIdClaim = claimsIdentity.Claims.First(c => c.Type == ClaimNames.CompanyId);
        claimsIdentity.RemoveClaim(oldCompanyIdClaim);
        var newCompanyIdClaim = new Claim(ClaimNames.CompanyId, "1234567890");
        claimsIdentity.AddClaim(newCompanyIdClaim);
        await HttpContext.SignInAsync(authenticateResult.Principal, authenticateResult.Properties);
    }
}

参考

How do I add a custom claim to authentication cookie generated by OpenIdConnect middleware in ASP.Net Core after authentication?