private StringBuilder CreateMessageBody(AccUserModel user, string ipAddress) { if (!(user.UserName.ToLower() == "Demo".ToLower())) { return(ExistingUser(ipAddress, user)); } return(DemoUser(ipAddress)); }
public async Task <ActionResult> Register(RegisterModel model) { if (ModelState.IsValid) { var userToAdd = new AccUserModel() { UserName = model.Login, Email = model.Email, }; var validMail = await UserManager.UserValidator.ValidateAsync(userToAdd); if (!validMail.Succeeded) { AddModelErrors(validMail); } var validPass = await UserManager.PasswordValidator.ValidateAsync(model.Password); if (!validPass.Succeeded) { AddModelErrors(validPass); } if (!model.Password.Equals(model.ConfirmPassword)) { ModelState.AddModelError("", "Введенные пароли не совпадают"); } if (validPass.Succeeded && validMail.Succeeded && model.Password.Equals(model.ConfirmPassword)) { userToAdd.PasswordHash = UserManager.PasswordHasher.HashPassword(model.Password); var result = await UserManager.CreateAsync(userToAdd); if (!result.Succeeded) { AddModelErrors(result); } result = await UserManager.AddToRoleAsync(userToAdd.Id, "Users"); if (!result.Succeeded) { AddModelErrors(result); } else { var address = HttpContext.Request.UserHostAddress; new Thread(() => _userReporter.Report(userToAdd, address)).Start(); TempData["message"] = "Спасибо за регистрацию. Теперь можно войти в систему со своим логином и паролем"; return(Redirect("/")); } } } else { return(View(model)); } return(View(model)); }
private StringBuilder ExistingUser(string address, AccUserModel user) { var messageBody = new StringBuilder(); messageBody.AppendLine("Зарегистрировался новый пользователь"); messageBody.AppendLine("Логин: " + user.UserName); messageBody.AppendLine("Email: " + user.Email); messageBody.AppendLine("IP: " + address); messageBody.AppendLine("Дата регистрации: " + DateTime.Now); return(messageBody); }
private async Task SignInUser(AccUserModel user) { var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); AuthManager.SignOut(); AuthManager.SignIn(new AuthenticationProperties() { IsPersistent = true }, identity); Session["WebUser"] = new WebUser() { Id = user.Id, Name = user.UserName, Email = user.Email }; }
public async Task <ActionResult> Create(CreateModel model) { if (ModelState.IsValid) { var user = new AccUserModel() { Email = model.Email, UserName = model.Name }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { return(RedirectToAction("Index")); } AddModelErrors(result); } return(PartialView("_Create", model)); }
private async void ActualizePlanItems(AccUserModel user) { try { await _planingHelper.ActualizePlanItems(user.Id); } catch (WebUiHelperException e) { throw new WebUiException( $"Ошибка в контроллере {nameof(UserAccountController)} в методе {nameof(ActualizePlanItems)}", e); } catch (Exception e) { throw new WebUiException( $"Ошибка в контроллере {nameof(UserAccountController)} в методе {nameof(ActualizePlanItems)}", e); } }
public async Task Report(AccUserModel user, string address) { StringBuilder messageBody = new StringBuilder(); if (user.UserName.ToLower() == "Demo".ToLower()) { DemoUser(messageBody, address); await Task.Run(() => { Logger.Warn(messageBody.ToString); }); } else { messageBody.AppendLine("Зарегистрировался новый пользователь"); messageBody.AppendLine("Логин: " + user.UserName); messageBody.AppendLine("Email: " + user.Email); messageBody.AppendLine("IP: " + address); messageBody.AppendLine("Дата регистрации: " + DateTime.Now); await Task.Run(() => { Logger.Warn(messageBody.ToString); }); } }
public async Task <ActionResult> Login(LoginModel model, string returnUrl) { if (ModelState.IsValid) { try { AccUserModel user = await UserManager.FindAsync(model.Name, model.Password); if (user != null) { ClaimsIdentity identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); AuthManager.SignOut(); AuthManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, identity); if (user.UserName == "demo") { var address = HttpContext.Request.UserHostAddress; new Thread(() => _userReporter.Report(user, address)).Start(); } //new Thread(() => ActualizePlanItems(user)).Start(); Отключил пока не починю планирование Session["WebUser"] = new WebUser() { Id = user.Id, Name = user.UserName, Email = user.Email }; return(Json(new { url = returnUrl, hasErrors = "false" }, JsonRequestBehavior.AllowGet)); } ModelState.AddModelError("", "Неверные имя пользователя или пароль"); } catch (Exception ex) { throw new WebUiException("Невозможно подключиться к базе авторизации", ex); } } ViewBag.returnUrl = returnUrl; return(PartialView("_Login", model)); }
public async Task <ActionResult> Register(RegisterModel model) { if (ModelState.IsValid) { var userToAdd = new AccUserModel() { UserName = model.Login, Email = model.Email, }; var validMail = await UserManager.UserValidator.ValidateAsync(userToAdd); if (!validMail.Succeeded) { AddModelErrors(validMail); } var validPass = await UserManager.PasswordValidator.ValidateAsync(model.Password); if (!validPass.Succeeded) { AddModelErrors(validPass); } if (!model.Password.Equals(model.ConfirmPassword)) { ModelState.AddModelError("", "Введенные пароли не совпадают"); } if (validPass.Succeeded && validMail.Succeeded && model.Password.Equals(model.ConfirmPassword)) { userToAdd.PasswordHash = UserManager.PasswordHasher.HashPassword(model.Password); var result = await UserManager.CreateAsync(userToAdd); if (!result.Succeeded) { AddModelErrors(result); } result = await UserManager.AddToRoleAsync(userToAdd.Id, "Users"); if (!result.Succeeded) { AddModelErrors(result); } else { var address = HttpContext.Request.UserHostAddress; await _userReporter.Log(userToAdd, address); await SignInUser(userToAdd); var urlToRedirect = Url.Action("Index", "PayingItem"); return(Json(new { url = urlToRedirect, hasErrors = "false" }, JsonRequestBehavior.AllowGet)); } } } else { return(PartialView("_Register", model)); } return(PartialView("_Register", model)); }
public async Task Log(AccUserModel user, string ipAddress) { var messageBody = CreateMessageBody(user, ipAddress); await Task.Run(() => Logger.Info(messageBody.ToString)); }