private MembershipUser UserToMembershipUser(User user) { return new MembershipUser(ProviderName, user.Name, user.Id, user.EMail, user.PasswordQuestion, user.Comment, user.Enabled, user.IsLockedOut, SafeDate(user.InsertDate), SafeDate(user.LastLoginDate), SafeDate(user.LastActivityDate), SafeDate(user.LastPasswordChangedDate), SafeDate(user.LockedOutDate)); }
/// <summary> /// /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <param name="email"></param> /// <param name="passwordQuestion"></param> /// <param name="passwordAnswer"></param> /// <param name="isApproved"></param> /// <param name="providerUserKey">Not used</param> /// <param name="status"></param> /// <returns></returns> public override System.Web.Security.MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out System.Web.Security.MembershipCreateStatus status) { try { //Validate password ValidatePassword(username, password, true); using (TransactionScope transaction = new TransactionScope(mConfiguration)) { UserDataStore dataStore = new UserDataStore(transaction); //Check name if (dataStore.FindByName(ApplicationName, username) != null) { status = MembershipCreateStatus.DuplicateUserName; return null; } //Check email if (RequiresUniqueEmail) { if (email == null || email.Length == 0) { status = MembershipCreateStatus.InvalidEmail; return null; } if (dataStore.FindByEmail(ApplicationName, email).Count > 0) { status = MembershipCreateStatus.DuplicateEmail; return null; } } User user = new User(ApplicationName, username); user.EMail = email; user.ChangePassword(password); user.ChangePasswordQuestionAnswer(passwordQuestion, passwordAnswer); user.Enabled = isApproved; dataStore.Insert(user); transaction.Commit(); status = MembershipCreateStatus.Success; return UserToMembershipUser(user); } } catch (CodeInvalidCharsException ex) //this exception is caused by an invalid user Name { LogException(ex, "CreateUser"); status = MembershipCreateStatus.InvalidUserName; return null; } catch (MembershipPasswordException ex) { LogException(ex, "CreateUser"); status = MembershipCreateStatus.InvalidPassword; return null; } catch (Exception ex) { LogException(ex, "CreateUser"); status = MembershipCreateStatus.ProviderError; return null; } }