두 가지 동작 기능이있는 컨트롤러 클래스가 하나 있습니다. 하나의 작업은 하나의보기가있는 로그인 페이지이고 다른 하나는 여러보기가있는 백엔드 페이지입니다. 백엔드 동작은 로그인 동작을 사용자에게 전송해야하며 사용자에게 로그인 페이지에서 "세션이 만료"와 같은 메시지를 표시 할 때가져 오기, 게시 또는 쿠키를 사용하지 않고 세션간에 데이터 보관
public ActionResult Login(...)
{
if (logged in or login success)
{
return RedirectToAction("Backend","Controller");
}
...
return View();
}
public ActionResult Backend(...)
{
if(session expired or not logged in)
{
return RedirectToAction("Login","Controller");
}
...
return View("someView");
}
문제입니다.
예를 들어 ViewBag는 현재 세션에만 있습니다. 그러나 세션간에 정보를 저장하는 비슷하고 쉬운 방법이 있습니까? 백엔드에서 메시지를 설정 한 다음 로그인으로 리디렉션하고 해당 로그인 메시지를 읽고보기에 표시 할 수 있습니까? PersistentViewBag 같은 종류.
실제로 get, post 또는 cookies를 사용하고 싶지는 않습니다. 실행 가능한 옵션이지만 실제로는 대신 백엔드 동작에서 자체보기로 로그인해야합니다.
을 당신은 내가 같은 메시지 로그인 페이지 **의 "세션이 만료"사용자에게 보여주고 싶은 ** 문제는 말하지만, 계속해서 ViewBag 지속성과 같은 관련없는 문제를 설명하십시오. 따라서이 문제가 귀하의 문제이거나 관련이 있다면 조금 혼란 스럽습니다. –
@Dave A : 관련이 없습니다. ViewBag을 사용하여 현재 세션의 모든보기에 메시지를 표시 할 수 있습니다. 약간의 상상력을 사용하여 영속적 인 ViewBag를 사용하여 여러 세션의 뷰에 메시지를 표시 할 수 있습니다. 거의 서버 측 쿠키와 같습니다. – Espen
오해가 있다고 생각합니다. ** 예를 들어 ViewBag는 현재 세션에만 있습니다 **. 사실이 아니다. ViewBag는 Controller의 멤버이며 범위를 공유합니다. Session을 잃고 ViewBag를 유지할 수 있습니다. 그 반대도 마찬가지입니다. 많은 문제/우려 사항이 게시되는 것처럼 느껴집니다. 로그인 페이지 **에서 "세션 만료"와 같은 메시지를 표시하려면 주로 ** 문제가 있습니까? 그렇다면 답이 있습니다. 그렇지 않다면 나는 그 질문을 완전히 이해하기 위해 고심하고있다. –