private MembershipUser UserToMembershipUser(User user) { return new RavenDBMembershipUser(_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)); }
public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (_membershipService.ValidateUser(model.UserName, model.Password)) { _formsService.SignIn(model.UserName, model.RememberMe); for (int i = 0; i < 5; i++) { User u = new User(); u.Username = model.UserName + " " + i.ToString(); u.DateLastLogin = DateTime.UtcNow; u.DateCreated = DateTime.UtcNow; u.Roles = new List<string>(); UserLoginEvent loginEvent = new UserLoginEvent(); loginEvent.CreationDate = DateTime.Now; loginEvent.User = u; BaseController.ServiceBus.PublishAsync<UserLoginEvent>(loginEvent, (result) => { }); } if (Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed, redisplay form return View(model); }
public override MembershipUser CheckedCreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { if (password.Length < MinRequiredPasswordLength) throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword); ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } var user = new User(); user.Username = username; password = password.Trim(); user.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()) { session.Advanced.UseOptimisticConcurrency = true; try { session.Store(user); session.Store(new ReservationForUniqueFieldValue { Id = "username/" + user.Username }); session.Store(new ReservationForUniqueFieldValue { Id = "email/" + user.Email }); 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 (ConcurrencyException e) { status = InterpretConcurrencyException(user.Username, user.Email, e); } catch (Exception ex) { // TODO: log exception properly Console.WriteLine(ex.ToString()); status = MembershipCreateStatus.ProviderError; } } return null; }