mvc логин с параметром - PullRequest
       3

mvc логин с параметром

0 голосов
/ 23 апреля 2020

Я использую mvc логин. пользователь вводит имя и пароль, проверяет его и перенаправляет его в AppJobsIndex в Jobs Controller.

return RedirectToAction("JobsIndex", "Jobs", new { Area = "Admin" });

проблема в том, что мне нужен другой вариант входа в систему, вход в систему с указанным Id, в другое представление, Я имею в виду: нормальный ввод: http://localhost:55732/Admin/User/Login
=> редирект для возврата RedirectToAction ("JobsIndex", "Jobs", new {Area = "Admin"}); и я хочу http://localhost:55732/Admin/User/Login?InspectionId=4 => перенаправить на

 return RedirectToAction("OpenDocumentPreview", "Admin", new { id = "model.InspectionId", PreviewType = "I" });

вот мой логин c:

    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        try
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var hashPassword = Encrypt(model.Password);   //this is working but not preferable
            string pass = Decrypt(hashPassword);
            string userId = db.AspNetUsers.Where(x => x.Email == model.Email && x.PasswordHash == hashPassword).Select(x => x.Id).FirstOrDefault();

            string RoleName = (from s in db.AspNetUsers
                               join r in db.AspNetUserRoles on s.Id equals r.UserId
                               join ur in db.AspNetRoles on r.RoleId equals ur.Id
                               where s.Email == model.Email && s.PasswordHash == hashPassword
                               select ur.Name).FirstOrDefault();

            if (!String.IsNullOrEmpty(userId))
            {
                Session["UserId"] = userId;
                Session["Username"] = model.Email;
                Session["Role"] = RoleName;

                if (model.InspectionId > 0)
                {
                    return RedirectToAction("OpenDocumentPreview", "Admin", new { id = "model.InspectionId", PreviewType = "I" });

                }
                else
                {
                    return RedirectToAction("JobsIndex", "Jobs", new { Area = "Admin" });
                }
            }
            else
            {
                ModelState.AddModelError("", "Invalid login attempt");
                return View(model);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...