ActionResult RegisterInternal( RegistrationViewModel registrationViewModel, string usernameTakenMessage, Func <string, User> createUser, Func <ActionResult> confirmAction, Func <ActionResult> invalidModelStateAction, Action <User> afterUserCreated = null) { if (registrationViewModel == null) { throw new ArgumentNullException("registrationViewModel"); } if (createUser == null) { throw new ArgumentNullException("createUser"); } if (confirmAction == null) { throw new ArgumentNullException("confirmAction"); } if (invalidModelStateAction == null) { throw new ArgumentNullException("invalidModelStateAction"); } if (ModelState.IsValid) { var conflictedUser = userService.GetUserByUserName(registrationViewModel.Email); if (conflictedUser != null) { ModelState.AddModelError("Email", usernameTakenMessage); return(invalidModelStateAction()); } var hashedPassword = formsAuthenticationService.HashAndSalt( registrationViewModel.Email, registrationViewModel.Password); var user = createUser(hashedPassword); if (string.IsNullOrWhiteSpace(configuration.EmailSmtpServer)) { // if no smtp server configured, just activate user as no email is sent out. user.Activate(); } userService.SaveUser(user); if (afterUserCreated != null) { afterUserCreated(user); } return(confirmAction()); } return(invalidModelStateAction()); }
string GetNewPasswordFor(User user) { var newPassword = Guid.NewGuid().ToString().Substring(0, 5); var hashedPassword = formsAuthenticationService.HashAndSalt(user.UserName, newPassword); user.ResetPassword(hashedPassword); return(newPassword); }
private string GetHashedPassword(string password) { return(formsAuthenticationService.HashAndSalt( userService.CurrentUser.UserName, password)); }