Esempio n. 1
0
        public void UpdateUser(MembershipUser user, string[] roles)
        {
            using (var ts = new TransactionScope())
            {
                _provider.UpdateUser(user);
                var existingRoles = _roleProvider.GetRolesForUser(user.UserName);
                if (roles != null && roles.Length > 0)
                {
                    var rolesToBeAdded = roles.Except(existingRoles).ToArray();
                    _roleProvider.AddUsersToRoles(new[] { user.UserName }, rolesToBeAdded);
                }
                if (existingRoles.Length > 0)
                {
                    var rolesToBeDeleted = (roles != null ? existingRoles.Except(roles) : existingRoles).ToArray();
                    _roleProvider.RemoveUsersFromRoles(new[] { user.UserName }, rolesToBeDeleted);
                }

                ts.Complete();
            }
        }