protected void Page_Load(object sender, EventArgs e) { if (DbEntryMembershipUser.GetCount(Condition.Empty) == 0) { Membership.CreateUser("admin", "admin"); } }
private void UpdateFailureCount(DbEntryMembershipUser user, string failureType) { var windowStart = new DateTime(); int failureCount = 0; if (failureType == "password") { failureCount = user.FailedCount; try { windowStart = user.FailedStart; } catch { windowStart = DateTime.Now; } } if (failureType == "passwordAnswer") { failureCount = user.FailedAnswerCount; windowStart = user.FailedAnswerStart; } var windowEnd = windowStart.AddMinutes(PasswordAttemptWindow); var utcNow = DateTime.Now; if (failureCount == 0 || utcNow > windowEnd) { if (failureType == "password") { user.FailedCount = 1; user.FailedStart = DateTime.Now; user.Save(); } if (failureType == "passwordAnswer") { user.FailedAnswerCount = 1; user.FailedAnswerStart = DateTime.Now; user.Save(); } } else { if (failureCount++ >= MaxInvalidPasswordAttempts) { user.IsLockedOut = true; user.LastLockoutDate = DateTime.Now; user.Save(); } else { if (failureType == "password") user.FailedCount = failureCount; if (failureType == "passwordAnswer") user.FailedAnswerCount = failureCount; user.Save(); } } }
private bool CheckPassword(string password, DbEntryMembershipUser user) { return user.Password.Equals(EncodePassword(password,user.PasswordFormat,user.PasswordSalt)); }
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { var args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } if (RequiresUniqueEmail && !string.IsNullOrWhiteSpace(GetUserNameByEmail(email))) { status = MembershipCreateStatus.DuplicateEmail; return null; } MembershipUser u = GetUser(username, false); if (u == null) { DateTime createDate = DateTime.Now; passwordQuestion = string.IsNullOrWhiteSpace(passwordQuestion) ? string.Empty : passwordQuestion; passwordAnswer = string.IsNullOrWhiteSpace(passwordAnswer) ? string.Empty : passwordAnswer; string salt = GenerateSalt(); var user = new DbEntryMembershipUser { UserName = username, Password = EncodePassword(password, (int)this.PasswordFormat, salt), PasswordFormat = PasswordFormat.GetHashCode(), PasswordSalt = salt, Email = email, LoweredEmail = email == null ? string.Empty : email.ToLowerInvariant(), PasswordQuestion = passwordQuestion, PasswordAnswer = passwordAnswer, IsApproved = isApproved, IsLockedOut = false, LastLoginDate = createDate, LastPasswordChangedDate = createDate, LastLockoutDate = createDate, FailedCount = 0, FailedStart = createDate, FailedAnswerCount = 0, FailedAnswerStart = createDate, LastActivityDate = createDate, Comment = string.Empty }; //.Init(username, password, email, passwordQuestion, passwordAnswer, isApproved, null); // user.CreateDate = createDate; user.Save(); status = MembershipCreateStatus.Success; return GetUser(username, false); } status = MembershipCreateStatus.DuplicateUserName; return null; }