public IdentityResult RefreshUserGroupRoles(long userId) { var user = _userManager.FindById(userId); if (user == null) { throw new ArgumentNullException("User"); } // Remove user from previous roles: var oldUserRoles = _userManager.GetRoles(userId); if (oldUserRoles.Count > 0) { // _userManager.RemoveFromRoles(userId, oldUserRoles.ToArray()); } // Find teh roles this user is entitled to from group membership: var newGroupRoles = this.GetUserGroupRoles(userId); // Get the damn role names: var allRoles = _roleManager.Roles.ToList(); var addTheseRoles = allRoles.Where(r => newGroupRoles.Any(gr => gr.RoleId == r.Id)); var roleNames = addTheseRoles.Select(n => n.Name).ToArray(); // Add the user to the proper roles //_userManager.AddToRoles(userId, roleNames); return(IdentityResult.Success); }