コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public ActionResult Register(RegisterModel model)
 {
     return RegisterAccount(model);
 }