public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { if (string.IsNullOrEmpty(roleName)) { return false; } using (DataContext Context = new DataContext()) { Role Role = null; Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName); if (Role == null) { return false; } if (throwOnPopulatedRole) { if (Role.Users.Any()) { return false; } } else { Role.Users.Clear(); } Context.Roles.Remove(Role); Context.SaveChanges(); return true; } }
public override void AddUsersToRoles(string[] usernames, string[] roleNames) { using (DataContext Context = new DataContext()) { List<User> Users = Context.Users.Where(Usr => usernames.Contains(Usr.Username)).ToList(); List<Role> Roles = Context.Roles.Where(Rl => roleNames.Contains(Rl.RoleName)).ToList(); foreach (User user in Users) { foreach (Role role in Roles) { if (!user.Roles.Contains(role)) { user.Roles.Add(role); } } } Context.SaveChanges(); } }
public override void CreateRole(string roleName) { if (!string.IsNullOrEmpty(roleName)) { using (DataContext Context = new DataContext()) { Role Role = null; Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName); if (Role == null) { Role NewRole = new Role { Id = Guid.NewGuid(), RoleName = roleName }; Context.Roles.Add(NewRole); Context.SaveChanges(); } } } }
public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) { using (DataContext Context = new DataContext()) { foreach (String username in usernames) { String us = username; User user = Context.Users.FirstOrDefault(U => U.Username == us); if (user != null) { foreach (String roleName in roleNames) { String rl = roleName; Role role = user.Roles.FirstOrDefault(R => R.RoleName == rl); if (role != null) { user.Roles.Remove(role); } } } } Context.SaveChanges(); } }
public override bool IsUserInRole(string username, string roleName) { if (string.IsNullOrEmpty(username)) { return false; } if (string.IsNullOrEmpty(roleName)) { return false; } using (DataContext Context = new DataContext()) { User User = null; User = Context.Users.FirstOrDefault(Usr => Usr.Username == username); if (User == null) { return false; } Role Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName); if (Role == null) { return false; } return User.Roles.Contains(Role); } }
public override string[] GetUsersInRole(string roleName) { if (string.IsNullOrEmpty(roleName)) { return null; } using (DataContext Context = new DataContext()) { Role Role = null; Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName); if (Role != null) { return Role.Users.Select(Usr => Usr.Username).ToArray(); } else { return null; } } }
public override string[] GetRolesForUser(string username) { if (string.IsNullOrEmpty(username)) { return null; } using (DataContext Context = new DataContext()) { User User = null; User = Context.Users.FirstOrDefault(Usr => Usr.Username == username); if (User != null) { return User.Roles.Select(Rl => Rl.RoleName).ToArray(); } else { return null; } } }
public override string[] GetAllRoles() { using (DataContext Context = new DataContext()) { return Context.Roles.Select(Rl => Rl.RoleName).ToArray(); } }
public override string[] FindUsersInRole(string roleName, string usernameToMatch) { if (string.IsNullOrEmpty(roleName)) { return null; } if (string.IsNullOrEmpty(usernameToMatch)) { return null; } using (DataContext Context = new DataContext()) { return (from Rl in Context.Roles from Usr in Rl.Users where Rl.RoleName == roleName && Usr.Username.Contains(usernameToMatch) select Usr.Username).ToArray(); } }
public override bool DeleteUser(string username, bool deleteAllRelatedData) { if (string.IsNullOrEmpty(username)) { return false; } using (var context = new DataContext()) { User user= null; user = context.Users.FirstOrDefault(usr => usr.Username == username); if (user != null) { context.Users.Remove(user); context.SaveChanges(); return true; } else { return false; } } }
public override bool UnlockUser(string userName) { using (var context = new DataContext()) { User user = null; user = context.Users.FirstOrDefault(usr => usr.Username == userName); if (user != null) { user.IsLockedOut = false; user.PasswordFailuresSinceLastSuccess = 0; context.SaveChanges(); return true; } else { return false; } } }
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) { if (providerUserKey is Guid) { } else { return null; } using (var context = new DataContext()) { User user = null; user = context.Users.Find(providerUserKey); if (user != null) { if (userIsOnline) { user.LastActivityDate = DateTime.UtcNow; context.SaveChanges(); } return new MembershipUser(System.Web.Security.Membership.Provider.Name, user.Username, user.Id, user.Email, null, null, user.IsApproved, user.IsLockedOut, user.CreateDate.Value, user.LastLoginDate.Value, user.LastActivityDate.Value, user.LastPasswordChangedDate.Value, user.LastLockoutDate.Value); } else { return null; } } }
public override string GetUserNameByEmail(string email) { using (var context = new DataContext()) { User user = null; user = context.Users.FirstOrDefault(usr => usr.Email == email); if (user != null) { return user.Username; } else { return string.Empty; } } }
public override MembershipUser GetUser(string username, bool userIsOnline) { if (string.IsNullOrEmpty(username)) { return null; } using (var context = new DataContext()) { User user = null; user = context.Users.FirstOrDefault(usr => usr.Username == username); if (user != null) { if (userIsOnline) { user.LastActivityDate = DateTime.UtcNow; context.SaveChanges(); } return new MembershipUser(System.Web.Security.Membership.Provider.Name, user.Username, user.Id, user.Email, null, null, user.IsApproved, user.IsLockedOut, user.CreateDate.Value, user.LastLoginDate.Value, user.LastActivityDate.Value, user.LastPasswordChangedDate.Value, user.LastLockoutDate.Value); } else { return null; } } }
public override int GetNumberOfUsersOnline() { var dateActive = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(Convert.ToDouble(System.Web.Security.Membership.UserIsOnlineTimeWindow))); using (var context = new DataContext()) { return context.Users.Count(usr => usr.LastActivityDate > dateActive); } }
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { var membershipUsers = new MembershipUserCollection(); using (var context = new DataContext()) { totalRecords = context.Users.Count(); IQueryable<User> users = context.Users.OrderBy(usrn => usrn.Username).Skip(pageIndex*pageSize).Take(pageSize); foreach (var user in users) { membershipUsers.Add(new MembershipUser(System.Web.Security.Membership.Provider.Name, user.Username, user.Id, user.Email, null, null, user.IsApproved, user.IsLockedOut, user.CreateDate.Value, user.LastLoginDate.Value, user.LastActivityDate.Value, user.LastPasswordChangedDate.Value, user.LastLockoutDate.Value)); } } return membershipUsers; }
public override bool RoleExists(string roleName) { if (string.IsNullOrEmpty(roleName)) { return false; } using (DataContext Context = new DataContext()) { Role Role = null; Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName); if (Role != null) { return true; } else { return false; } } }
public static MembershipCreateStatus Register(string Username, string Password, string Email, bool IsApproved, string FirstName, string LastName) { MembershipCreateStatus CreateStatus; Membership.CreateUser(Username, Password, Email, null, null, IsApproved, null, out CreateStatus); if (CreateStatus == MembershipCreateStatus.Success) { using (DataContext Context = new DataContext()) { User User = Context.Users.FirstOrDefault(Usr => Usr.Username == Username); User.FirstName = FirstName; User.LastName = LastName; Context.SaveChanges(); } if (IsApproved) { FormsAuthentication.SetAuthCookie(Username, false); } } return CreateStatus; }
public override bool ValidateUser(string username, string password) { if (string.IsNullOrEmpty(username)) { return false; } if (string.IsNullOrEmpty(password)) { return false; } using (var context = new DataContext()) { User user = null; user = context.Users.FirstOrDefault(usr => usr.Username == username); if (user == null) { return false; } if (!user.IsApproved) { return false; } if (user.IsLockedOut) { return false; } String hashedPassword = user.Password; Boolean verificationSucceeded = (hashedPassword != null && Crypto.VerifyHashedPassword(hashedPassword, password)); if (verificationSucceeded) { user.PasswordFailuresSinceLastSuccess = 0; user.LastLoginDate = DateTime.UtcNow; user.LastActivityDate = DateTime.UtcNow; } else { int failures = user.PasswordFailuresSinceLastSuccess; if (failures < MaxInvalidPasswordAttempts) { user.PasswordFailuresSinceLastSuccess += 1; user.LastPasswordFailureDate = DateTime.UtcNow; } else if (failures >= MaxInvalidPasswordAttempts) { user.LastPasswordFailureDate = DateTime.UtcNow; user.LastLockoutDate = DateTime.UtcNow; user.IsLockedOut = true; } } context.SaveChanges(); if (verificationSucceeded) { return true; } else { return false; } } }
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { if (string.IsNullOrEmpty(username)) { status = MembershipCreateStatus.InvalidUserName; return null; } if (string.IsNullOrEmpty(password)) { status = MembershipCreateStatus.InvalidPassword; return null; } if (string.IsNullOrEmpty(email)) { status = MembershipCreateStatus.InvalidEmail; return null; } string hashedPassword = Crypto.HashPassword(password); if (hashedPassword.Length > 128) { status = MembershipCreateStatus.InvalidPassword; return null; } using (var context = new DataContext()) { if (context.Users.Any(usr => usr.Username == username)) { status = MembershipCreateStatus.DuplicateUserName; return null; } if (context.Users.Any(usr => usr.Email == email)) { status = MembershipCreateStatus.DuplicateEmail; return null; } var newUser = new User { Id = Guid.NewGuid(), Username = username, Password = hashedPassword, IsApproved = isApproved, Email = email, CreateDate = DateTime.UtcNow, LastPasswordChangedDate = DateTime.UtcNow, PasswordFailuresSinceLastSuccess = 0, LastLoginDate = DateTime.UtcNow, LastActivityDate = DateTime.UtcNow, LastLockoutDate = DateTime.UtcNow, IsLockedOut = false, LastPasswordFailureDate = DateTime.UtcNow }; context.Users.Add(newUser); context.SaveChanges(); status = MembershipCreateStatus.Success; var direccion = "http://www.HolidaysReminder.somee.com/Account/ConfirmarCuenta/?confirm="; Gateway.SendMailConfirm(email, newUser.Id.ToString(), newUser.Username,direccion,null); return new MembershipUser(System.Web.Security.Membership.Provider.Name, newUser.Username, newUser.Id, newUser.Email, null, null, newUser.IsApproved, newUser.IsLockedOut, newUser.CreateDate.Value, newUser.LastLoginDate.Value, newUser.LastActivityDate.Value, newUser.LastPasswordChangedDate.Value, newUser.LastLockoutDate.Value); } }
public override bool ChangePassword(string username, string oldPassword, string newPassword) { if (string.IsNullOrEmpty(username)) { return false; } if (string.IsNullOrEmpty(oldPassword)) { return false; } if (string.IsNullOrEmpty(newPassword)) { return false; } using (var context = new DataContext()) { User user = null; user = context.Users.FirstOrDefault(Usr => Usr.Username == username); if (user == null) { return false; } var hashedPassword = user.Password; var verificationSucceeded = (hashedPassword != null && Crypto.VerifyHashedPassword(hashedPassword, oldPassword)); if (verificationSucceeded) { user.PasswordFailuresSinceLastSuccess = 0; } else { int failures = user.PasswordFailuresSinceLastSuccess; if (failures < MaxInvalidPasswordAttempts) { user.PasswordFailuresSinceLastSuccess += 1; user.LastPasswordFailureDate = DateTime.UtcNow; } else if (failures >= MaxInvalidPasswordAttempts) { user.LastPasswordFailureDate = DateTime.UtcNow; user.LastLockoutDate = DateTime.UtcNow; user.IsLockedOut = true; } context.SaveChanges(); return false; } var newHashedPassword = Crypto.HashPassword(newPassword); if (newHashedPassword.Length > 128) { return false; } user.Password = newHashedPassword; user.LastPasswordChangedDate = DateTime.UtcNow; context.SaveChanges(); return true; } }
/// <summary> /// Automotor Unit of Work /// </summary> /// <param name="contextoParam"></param> public UnitOfWork(DataContext contextoParam) { _context = contextoParam; }