Я перенаправляю пользователей к просмотру входа в систему, если сеанс истек, используя ActionFilterAttribute
, как показано ниже.
Теперь я хочу сохранить данные о маршруте в исходном запросе, чтобы я мог направить пользователя обратно к этому представлению после входа в систему.
Как отправить исходные данные маршрута в метод действия Login
?
public class BaseController : Controller
{
public int? BranchId {get => HttpContext.Session.GetInt32("BranchId") as int?;}
public string Admin {get => HttpContext.Session.GetString("Admin") as string;}
public BaseController() {}
}
public class AdminOrBranchesAccessAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
base.OnActionExecuting(context);
if ((context.Controller as BaseController).Admin == null &&
(context.Controller as BaseController).BranchId == null)
{
context.Result = new RedirectToRouteResult(new RouteValueDictionary(new
{
controller = "Home",
action = "Login"
}));
}
}
}
[AdminOrBranchesAccess]
public async Task<IActionResult> Details(int? id)
{
// Some stuff going on
return View();
}