private ActionResult RegisterAccount(RegisterModel model) { if (model.Password != model.ConfirmPassword) { ModelState.AddModelError("ConfirmPassword", "Passwords do not match"); } if (ModelState.IsValid) { using (var ctx = this.GetRepository()) { User u = ctx.Users.SingleOrDefault(f => f.Username == model.UserName); if (u != null) { ModelState.AddModelError("UserName", "Not available"); ModelState.SetModelValue("UserName", new ValueProviderResult(model.UserName, model.UserName, CultureInfo.CurrentUICulture)); } else { u = new User { Username = model.UserName, Name = string.Format("{0} {1}", model.FirstName, model.LastName), Email = model.Email, Password = model.Password }; try { ctx.Users.Add(AuthIdentityService.SetupUser(u)); ctx.SaveChanges(); // Send email notice to user MailService.SendMail(u.Email, "Verify SARTracks Account", string.Format("Click the link to verify your account:\n{0}?UserName={1}&Key={2}", Url.ActionFull("Verify"), u.Username, u.ValidationKey)); return RedirectToAction("Verify", "Account"); } catch { TempData["error"] = "Error saving user. Please try again."; } } } } // If we got this far, something failed, redisplay form return View(model); }
public ActionResult RegisterOpenId() { RegisterModel model = new RegisterModel { UserName = Permissions.UserLogin }; model.Email = model.UserName; MembershipUser user = Membership.GetUser(model.UserName); if (user != null) return new ContentResult { Content = string.Format("OpenId {0} is already registered", model.UserName), ContentType = "text/plain" }; return View(model); }
public ActionResult RegisterOpenId(RegisterModel model) { string openId = Permissions.UserLogin; MembershipUser user = Membership.GetUser(openId); if (user != null) { ModelState.AddModelError("", string.Format("OpenId {0} is already registered", openId)); } model.UserName = openId; model.Password = Membership.GeneratePassword(16, 4); model.ConfirmPassword = model.Password; return RegisterAccount(model); }
public ActionResult Register(RegisterModel model) { return RegisterAccount(model); }