Exemple #1
0
        public async Task <ActionResult> Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName         = model.UserName,
                    Email            = model.Email,
                    EmailConfirmed   = false,
                    DateRegistration = DateTime.Now,
                    PhotoUrl         = "https://zalatina.myhappyco.com/images/img-profile.png"
                };
                if (model.Password != model.ConfirmPassword)
                {
                    ViewBag.RegisterError = true;
                    ModelState.AddModelError("", "Неверно подтверждён пароль");
                }
                //добавление пользователя
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //наш email с заголовком письма
                    MailAddress from = new MailAddress("*****@*****.**", "Web Registration");
                    // кому отправляем
                    MailAddress to = new MailAddress(user.Email);
                    // создаем объект сообщения
                    MailMessage mail = new MailMessage(from, to);
                    // тема письма
                    mail.Subject = "Email confirmation";
                    // текст письма - включаем в него ссылку
                    mail.Body = string.Format("Для завершения регистрации перейдите по ссылке:" +
                                              "<a href=\"{0}\" title=\"Подтвердить регистрацию\">{0}</a>",
                                              Url.Action("ConfirmEmail", "Home", new { Token = user.Id, Email = user.Email }, Request.Url.Scheme));
                    mail.IsBodyHtml = true;
                    // адрес smtp-сервера, с которого мы и будем отправлять письмо
                    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
                    // логин и пароль
                    smtp.Credentials = new NetworkCredential("*****@*****.**", "205114qa");
                    smtp.EnableSsl   = true;
                    smtp.Send(mail);

                    await UserManager.AddToRoleAsync(user.Id, "User");

                    SqlQueries.CreateDatabases(user.UserName);
                    ViewBag.ResultRegister = string.Format("На вашу почту {0} отправлено сообщение с подтвержением регистрации.", user.Email);
                    return(PartialView("ResultRegister"));
                }
                else
                {
                    foreach (string error in result.Errors)
                    {
                        ModelState.AddModelError("", error);
                        ViewBag.RegisterError = true;
                    }
                    return(View("Index"));
                }
            }
            return(View("Index"));
        }