public void SetPrincipal(UserEntity user, string identityProvider) { IEnumerable<Claim> newClaims = CreateClaims(user.Email, user.Name, identityProvider); var userIdentity = new SocialIdentity(user.Id) { Memberships = user.Memberships }; userIdentity.AddClaims(newClaims); // check if principal is already has claims and preserve them var claimsPrincipal = HttpContext.Current.User as ClaimsPrincipal; if (claimsPrincipal != null && claimsPrincipal.Identity.AuthenticationType == FederationAuthenticationType) { userIdentity.SocialClaims = new List<Claim>(claimsPrincipal.Claims); } var userPrincipal = new GenericPrincipal(userIdentity, user.Roles.ToArray()); HttpContext.Current.User = userPrincipal; }
public void SetPrincipal(UserEntity user, string identityProvider) { IEnumerable <Claim> newClaims = CreateClaims(user.Email, user.Name, identityProvider); var userIdentity = new SocialIdentity(user.Id) { Memberships = user.Memberships }; userIdentity.AddClaims(newClaims); // check if principal is already has claims and preserve them var claimsPrincipal = HttpContext.Current.User as ClaimsPrincipal; if (claimsPrincipal != null && claimsPrincipal.Identity.AuthenticationType == FederationAuthenticationType) { userIdentity.SocialClaims = new List <Claim>(claimsPrincipal.Claims); } var userPrincipal = new GenericPrincipal(userIdentity, user.Roles.ToArray()); HttpContext.Current.User = userPrincipal; }