public override string ResetPassword(string username, string answer) { string newPassword = System.Web.Security.Membership.GeneratePassword(newPasswordLength, MinRequiredNonAlphanumericCharacters); ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } else { throw new MembershipPasswordException("Reset password canceled due to password validation failure."); } } try { IUserObjectContext ctx = GetCtx(); IUser user = GetUser(username, ctx); user.Password = EncryptPassword(newPassword); (ctx as ObjectContext).SaveChanges(); } catch (Exception ex) { throw new ProviderException("Failed to reset password", ex); } return(newPassword); }
public override bool ChangePassword(string username, string oldPassword, string newPassword) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(oldPassword) || string.IsNullOrEmpty(newPassword)) { throw new ArgumentException("Null string supplied to change password"); } IUserObjectContext ctx = GetCtx(); IUser user = ValidateUser(username, oldPassword, ctx, false); if (user == null) { return(false); } user.Password = EncryptPassword(newPassword); try { (ctx as ObjectContext).SaveChanges(); } catch (Exception ex) { throw new ProviderException(ex.Message, ex); } return(true); }
internal IUser GetUser(IUserObjectContext ctx, string username) { IUser user = null; try { user = ctx.GetUser(username); } catch (Exception ex) { throw new ProviderException(ex.Message, ex); } return(user); }
public virtual IUser GetUser(string username, IUserObjectContext ctx) { try { IUser user = userCachingService.GetFromCache(); if (user == null || user.UserName != username) { user = ctx.GetUser(username); } return(user); } catch (Exception ex) { throw new ProviderException("Failed to get user", ex); } }
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { IUserObjectContext ctx = GetCtx(); MembershipUserCollection mUsers = new MembershipUserCollection(); try { var users = ctx.GetUsers(null, null, pageIndex, pageSize, out totalRecords); foreach (IUser user in users) { mUsers.Add(new LightweightMembershipUser(user)); } return(mUsers); } catch (Exception ex) { throw new ProviderException("Failed to find users", ex); } }
public override bool DeleteUser(string username, bool deleteAllRelatedData) { IUserObjectContext ctx = GetCtx(); IUser user = GetUser(username, ctx); if (user == null) { return(false); } try { (ctx as ObjectContext).DeleteObject(user); (ctx as ObjectContext).SaveChanges(); } catch (Exception ex) { throw new ProviderException("Failed to delete", ex); } return(true); }
protected internal virtual IUser ValidateUser(string username, string password, IUserObjectContext ctx, bool isNewUser) { if (ctx == null) { ctx = GetCtx(); } if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { throw new ArgumentException("Null username or password supplied to ValidateUser"); } IUser user = GetUser(ctx, username); if (user == null) { return(null); } var args = new ValidatePasswordEventArgs(username, password, isNewUser); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } else { throw new MembershipPasswordException("Change password canceled due to new password validation failure."); } } bool isInitial = (string.IsNullOrEmpty(user.Password) && password == pInitPassword); if (!isInitial && EncryptPassword(password) != user.Password) { return(null); } return(user); }
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) || string.IsNullOrEmpty(password)) { throw new ArgumentException("Null username or password supplied to CreateUser"); } ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return(null); } if (!Validation.IsValidEmail(email)) { status = MembershipCreateStatus.InvalidEmail; return(null); } try { IUserObjectContext ctx = GetCtx(); IUser existingUser; if (RequiresUniqueEmail) { existingUser = ctx.GetAnyUser(username, email); //ctx.IUserSet.Cast<IUser>().FirstOrDefault(u => u.UserName == username || u.Email == email); } else { existingUser = ctx.GetUser(username); //ctx.IUserSet.Cast<IUser>().FirstOrDefault(u => u.UserName == username); } if (existingUser != null) { if (existingUser.UserName == username) { status = MembershipCreateStatus.DuplicateUserName; } else { status = MembershipCreateStatus.DuplicateEmail; } return(null); } IUser user = (IUser)Activator.CreateInstance(UserType); user.UserName = username; user.Password = EncryptPassword(password); user.Email = email; user.Created = DateTime.Now; user.Modified = DateTime.Now; user.Id = Guid.NewGuid(); (ctx as ObjectContext).AddObject("UserSet", user); (ctx as ObjectContext).SaveChanges(); providerUserKey = user.Id; status = MembershipCreateStatus.Success; return(new LightweightMembershipUser(user)); } catch (Exception ex) { throw new ProviderException("Failed to create user", ex); } }