public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { if (!SecUtility.ValidateParameter(ref password, true, true, false, 128)) { status = MembershipCreateStatus.InvalidPassword; return null; } var salt = GenerateSalt(); var encodedPassword = EncodePassword(password.ToLowerInvariant(), (int) PasswordFormat, salt); if (encodedPassword.Length > 128) { status = MembershipCreateStatus.InvalidPassword; return null; } string encodedPasswordAnswer; if (!string.IsNullOrEmpty(passwordAnswer)) { passwordAnswer = passwordAnswer.Trim(); if (passwordAnswer.Length > 128) { status = MembershipCreateStatus.InvalidAnswer; return null; } encodedPasswordAnswer = EncodePassword(passwordAnswer.ToLowerInvariant(), (int) PasswordFormat, salt); } else { encodedPasswordAnswer = passwordAnswer; } if (!SecUtility.ValidateParameter(ref encodedPasswordAnswer, RequiresQuestionAndAnswer, true, false, 128)) { status = MembershipCreateStatus.InvalidAnswer; return null; } if (!SecUtility.ValidateParameter(ref username, true, true, true, 255)) { status = MembershipCreateStatus.InvalidUserName; return null; } if (!SecUtility.ValidateParameter(ref email, RequiresUniqueEmail, RequiresUniqueEmail, false, 255)) { status = MembershipCreateStatus.InvalidEmail; return null; } if (!SecUtility.ValidateParameter(ref passwordQuestion, RequiresQuestionAndAnswer, true, false, 255)) { status = MembershipCreateStatus.InvalidQuestion; return null; } if (password.Length < MinRequiredPasswordLength) { status = MembershipCreateStatus.InvalidPassword; return null; } var count = 0; for (var i = 0; i < password.Length; i++) { if (!char.IsLetterOrDigit(password, i)) { count++; } } if (count < MinRequiredNonAlphanumericCharacters) { status = MembershipCreateStatus.InvalidPassword; return null; } if (PasswordStrengthRegularExpression.Length > 0) { if (!Regex.IsMatch(password, PasswordStrengthRegularExpression)) { status = MembershipCreateStatus.InvalidPassword; return null; } } var e = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(e); if (e.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } var context = new MyLifeEntities(); var user = context.tblUsers.Where(item => item.UserName == username).FirstOrDefault(); if (user != null) { status = MembershipCreateStatus.DuplicateUserName; return null; } if (RequiresUniqueEmail) { user = context.tblUsers.Where(item => item.Email == email).FirstOrDefault(); if (user != null) { status = MembershipCreateStatus.DuplicateEmail; return null; } } user = new tblUsers { UserName = username.ToLowerInvariant(), Password = encodedPassword, PasswordFormat = ((int) PasswordFormat), PasswordSalt = salt, Email = email.ToLowerInvariant(), IsApproved = isApproved, IsLockedOut = false, CreatedDate = DateTime.UtcNow, LastLoginDate = Constants.DateTime.MinSqlDate, LastPasswordChangedDate = Constants.DateTime.MinSqlDate, LastLockoutDate = Constants.DateTime.MinSqlDate }; try { context.AddTotblUsers(user); context.SaveChanges(); status = MembershipCreateStatus.Success; return Convert(user); } catch { status = MembershipCreateStatus.UserRejected; } return null; }