public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) { using (var db = new MembershipContext()) { var strComparer = new StringEqualityComparer(); UserUserRole[] userRoles = (from u in db.Users join ur in db.UserRoles on u.UserId equals ur.UserId join r in db.Roles on ur.RoleId equals r.RoleId where usernames.Contains(u.UserName, strComparer) && roleNames.Contains(r.RoleName, strComparer) select ur).ToArray(); DbSet<UserUserRole> dbSet = db.Set<UserUserRole>(); foreach (var uRole in userRoles) { if (db.Entry(uRole).State == System.Data.EntityState.Detached) dbSet.Attach(uRole); dbSet.Remove(uRole); } if (userRoles.Length > 0) db.SaveChanges(); } }
public override string CreateUserAndAccount(string userName, string password, bool requireConfirmation, IDictionary<string, object> values) { var newUser = new User() { UserName = userName }; newUser.EncryptedPassword = password.EncryptSha512(newUser.Salt); newUser.IsGoogleAuthenticatorEnabled = (bool)values["IsGoogleAuthenticatorEnabled"]; newUser.TwoFactorSecret = TwoFactorSecretGenerator.GenerateSecretKey(); newUser.CreationDate = newUser.LastLoginDate = DateTime.Now; using (var db = new MembershipContext()) { db.Set<User>().Add(newUser); db.SaveChanges(); } return newUser.UserId.ToString(); }