public ActionResult RegisterSuccess(LoginModel model) { return View(model); }
public ActionResult Login(LoginModel model, string returnUrl = "/PaperSubmission/Create") { if (ModelState.IsValid) { try { if (WebSecurity.IsConfirmed(model.Email)) { if (WebSecurity.Login(model.Email, model.Password, true)) { string role = KeldyshPreprintSystem.Tools.AccountHelper.GetUserRole(WebSecurity.GetUserId(model.Email));//currentuserid doesnt work, it is always -1 logger.Info("Successful login: "******" "+role); if (role == "user" && !Tools.PaperSubmissionControllerHelper.GotAnySubmissions(model.Email)) return RedirectToLocal(returnUrl); else return RedirectToLocal("/Panel"); } else ModelState.AddModelError("", "Неправильная пара логин/пароль."); } else if (WebSecurity.UserExists(model.Email)) { string confirmationToken = Tools.AccountHelper.GetConfirmationToken(model.Email); logger.Info("ConfirmationURL: " + "https://" + Request.Url.Host + "/Account/RegisterConfirmation?token=" + confirmationToken); Tools.MailSender.SendMail("Подтверждение регистрации", "Для подтверждения своей регистрации в качестве автора, ответственного за издание препринта, перейдите по ссылке (актуальна в течение 60 минут): https://" + Request.Url.Host + "/Account/RegisterConfirmation?token=" + confirmationToken, model.Email); ModelState.AddModelError("", "Почтовый адрес не подтвержден. Вход в систему невозможен до подтверждения адреса электронной почты. Повторное письмо с ссылкой для подтверждения было отправлено на адрес электронной почты " + model.Email); } else ModelState.AddModelError("", "Неправильная пара логин/пароль."); logger.Info("Unsuccessful login"); } catch (Exception ex) { logger.Error("login error: " + ex.Message); } } return View(model); }
public ActionResult Register(LoginModel model) { try { if (ModelState.IsValid) { // Attempt to register the user try { string confirmationToken = WebSecurity.CreateUserAndAccount(model.Email, model.Password, new { Password = "******", FullName = model.FullName }, requireConfirmationToken: true); ((SimpleRoleProvider)Roles.Provider).AddUsersToRoles(new[] { model.Email }, new[] { "user" }); logger.Info("ConfirmationURL: " + "https://" + Request.Url.Host + "/Account/RegisterConfirmation?token=" + confirmationToken); Tools.MailSender.SendMail("Подтверждение регистрации", "Для подтверждения своей регистрации в качестве автора, ответственного за издание препринта, перейдите по ссылке: https://" + Request.Url.Host + "/Account/RegisterConfirmation?token=" + confirmationToken, model.Email); return RedirectToAction("Login", "Account", new {afterRegistration=true}); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); logger.Error("Registration failed " + e.Message); } } // If we got this far, something failed, redisplay form return View(model); } catch (Exception ex) { logger.Error(ex.Message); return File(System.Text.ASCIIEncoding.Default.GetBytes(ex.Message), "text"); } }