public static void AddClaimsFrom(this ClaimsIdentity identity, CachedUserInfoData userInfo) { identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userInfo.UserId.ToString())); identity.AddClaim(new Claim(ClaimTypes.Name, userInfo.UserName)); identity.AddClaim(new Claim(ClaimTypes.Email, userInfo.Email)); if (!string.IsNullOrEmpty(userInfo.FirstName)) { identity.AddClaim(new Claim(ClaimTypes.GivenName, userInfo.FirstName)); } if (!string.IsNullOrEmpty(userInfo.LastName)) { identity.AddClaim(new Claim(ClaimTypes.Surname, userInfo.LastName)); } if (userInfo.Roles != null) { for (int i = 0, n = userInfo.Roles.Length; i < n; i++) { identity.AddClaim(new Claim(ClaimTypes.Role, userInfo.Roles[i])); } } }
public static void AddClaimsFrom(this ClaimsPrincipal principal, CachedUserInfoData userInfo) => ((ClaimsIdentity)principal.Identity).AddClaimsFrom(userInfo);