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");
     }
 }