private MembershipAccount GetUser(string userName) { VerifyInitialized(); using (var session = new MongoSession(_connectionString)) { MembershipAccount user = null; if (session.Users.Count() > 0) { user = session.Users.FirstOrDefault(x => x.UserName == userName); //if (user != null) //{ // throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName); //} } return(user); } }
private static bool SetPassword(MongoSession session, MembershipAccount user, string newPassword) { string hashedPassword = Crypto.HashPassword(newPassword); if (hashedPassword.Length > 128) { throw new ArgumentException("The membership password is too long. (Maximum length is 128 characters)."); } try { user.Password = hashedPassword; user.PasswordSalt = string.Empty; user.PasswordChangedDate = DateTime.UtcNow; session.Update(user); return(true); } catch (Exception) { return(false); } }
// Inherited from ExtendedMembershipProvider ==> Simple Membership MUST be enabled to use this method public override string CreateAccount(string userName, string password, bool requireConfirmationToken) { VerifyInitialized(); if (string.IsNullOrEmpty(password)) { throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword); } string hashedPassword = Crypto.HashPassword(password); if (hashedPassword.Length > 128) { throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword); } if (string.IsNullOrEmpty(userName)) { throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName); } // Step 1: Check if the user exists in the Users table var usr = GetUser(userName); if (usr != null) { // User found throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName); } using (var session = new MongoSession(_connectionString)) { // Step 2: Check if the user exists in the Membership table: Error if yes. var result = session.Users.Count(x => x.UserName == userName); if (result > 1) { throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName); } // Step 3: Create user in Membership table string token = null; object dbtoken = DBNull.Value; if (requireConfirmationToken) { token = GenerateToken(); dbtoken = token; } int defaultNumPasswordFailures = 0; try { var now = DateTime.UtcNow; usr = new MembershipAccount(); usr.UserName = userName; usr.UserId = Guid.NewGuid(); usr.Password = hashedPassword; usr.PasswordSalt = string.Empty; usr.IsConfirmed = !requireConfirmationToken; usr.ConfirmationToken = dbtoken as string; usr.CreateDate = now; usr.PasswordChangedDate = now; usr.PasswordFailuresSinceLastSuccess = defaultNumPasswordFailures; session.Update(usr); return(token); } catch (Exception) { throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError); } } }
private static bool SetPassword(MongoSession session, MembershipAccount user, string newPassword) { string hashedPassword = Crypto.HashPassword(newPassword); if (hashedPassword.Length > 128) { throw new ArgumentException("The membership password is too long. (Maximum length is 128 characters)."); } try { user.Password = hashedPassword; user.PasswordSalt = string.Empty; user.PasswordChangedDate = DateTime.UtcNow; session.Update(user); return true; } catch (Exception) { return false; } }