/// <summary> /// Users to membership user. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> private MembershipUser UserToMembershipUser(User user) { return new MembershipUser(ProviderName, user.Username, user.Id, user.Email, null, null, true, false , user.DateCreated, user.DateLastLogin.HasValue ? user.DateLastLogin.Value : new DateTime(1900, 1, 1), new DateTime(1900, 1, 1), new DateTime(1900, 1, 1), new DateTime(1900, 1, 1)); }
/// <summary> /// Adds a new membership user to the data source. /// </summary> /// <param name="username">The user name for the new user.</param> /// <param name="password">The password for the new user.</param> /// <param name="email">The e-mail address for the new user.</param> /// <param name="passwordQuestion">The password question for the new user.</param> /// <param name="passwordAnswer">The password answer for the new user</param> /// <param name="isApproved">Whether or not the new user is approved to be validated.</param> /// <param name="providerUserKey">The unique identifier from the membership data source for the user.</param> /// <param name="status">A <see cref="T:System.Web.Security.MembershipCreateStatus"/> enumeration value indicating whether the user was created successfully.</param> /// <returns> /// A <see cref="T:System.Web.Security.MembershipUser"/> object populated with the information for the newly created user. /// </returns> public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } var user = new User {Username = username, PasswordSalt = PasswordUtil.CreateRandomSalt()}; user.PasswordHash = PasswordUtil.HashPassword(password, user.PasswordSalt); user.Email = email; user.ApplicationName = this.ApplicationName; user.DateCreated = DateTime.Now; using (var session = this.DocumentStore.OpenSession()) { try { session.Store(user); session.SaveChanges(); status = MembershipCreateStatus.Success; return new MembershipUser(ProviderName, username, user.Id, email, null, null, true, false, user.DateCreated, new DateTime(1900, 1, 1), new DateTime(1900, 1, 1), DateTime.Now, new DateTime(1900, 1, 1)); } catch (Exception ex) { // TODO: log exception properly Console.WriteLine(ex.ToString()); status = MembershipCreateStatus.ProviderError; } } return null; }