Я использую 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;
}
}