public IActionResult Validate(ValidationModel model) { if (ModelState.IsValid) { model.isValidEmail = NameValidation.ValidateEmail(model.Input); return(View(model)); } else { return(View(model)); } }
public IActionResult Registration(Models.RegistrationModel model) { //Проверка правильности переданной модели if (ModelState.IsValid) { //проверка эл. ящика if (!NameValidation.ValidateEmail(model.Email)) { ModelState.AddModelError("", "Введённый почтовый адрес не прошёл валидацию."); return(RedirectToAction("Registration", model)); } //добавление пользователя в бд db.Users.Add(new Data.User() { Email = NameValidation.idn.GetAscii(model.Email), Login = Utils.GetHash(model.Email), Password = Utils.GetHash(model.Password), Person = new Person() { DateOfBirth = DateTime.Now, FirstName = "Тест", LastName = "Кейсов", Patronymic = "Тестович" }, Role = Roles.Ученик, UniqueCode = new UniqueKey() { UniqueKeyString = Utils.GetHash(DateTime.Now.ToShortTimeString()) } }); db.SaveChanges(); //отправка письма MailAddress from = new MailAddress("unnamed2@тестовая-зона.рф"); MailAddress to = new MailAddress(model.Email); MailMessage message = new MailMessage(from, to); message.Subject = "Благодарим за регистрацию на сайте ИТ-Дневник!" + DateTime.Now; message.Body = $"Вы зарегистрировались по уникальному ключу {model.UniqueKey}"; message.IsBodyHtml = true; //настройка smtp-клиента SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); //пока что используется аккаунт почты гугла smtp.Credentials = new NetworkCredential("*****@*****.**", "bfd20380a6"); smtp.EnableSsl = true; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Send(message); //вход под пользователем Authenticate(model.Email, model.Password); return(RedirectToAction("Index")); } return(RedirectToAction("Registration", model)); }