2017-04-05 7 views
0

내 응용 프로그램 내에서 사용자가 로그인합니다. 로그인 한 후에 방금 만든 세션을 어떻게 든 추적해야합니다. 로그인하면 두 가지 옵션이 있습니다. 건물에 들어가서 로그인 프로세스를 완료하거나 세션에 장비를 체크 아웃하십시오. 항목 체크 아웃을 위해 애플리케이션 내에서 해당 세션을 추적해야합니다. 그러나 장비보기 전에 각보기 전체에서 현재 세션 모델을 전달하고 싶지는 않습니까? 현재 TempData를 사용하고 있지만, 내가 생각하기에 두 번의 리디렉션을 통해 임시 데이터가 지워지는 것을 읽었을 때 불이 나고있는 것처럼 느껴집니다? 영구적 인 임시 데이터 또는 내가 사용할 수있는 안전한 데이터가 있습니까? 도와 주셔서 감사합니다.각보기를 통해 모델을 전달하지 않고 MVC 응용 프로그램에서 모델을 전달하고 저장하는 방법은 무엇입니까?

답변

0

이 데이터를 세션 상태로 저장할 수 있습니다. 컨트롤러에 명시 적으로 전달할 필요가 없으며 컨트롤러 액션 내부에서 액세스 할 수있는 HttpContext의 일부입니다.

MyUserContextData current = null; 

// retrieve 
if (HttpContext.Current != null && HttpContext.Current.Session != null) { 
    current = HttpContext.Current.Session["UserContextData"] as MyUserContextData; 
} 

// store 
if (HttpContext.Current != null && HttpContext.Current.Session != null) { 
    HttpContext.Current.Session["UserContextData"] = current; 
} 

ASP.NET Session State Overview

는 세션 상태를 사용하여 동시 요청을 방지 할 수 있다고 경고합니다.

ASP.NET Concurrent Ajax Requests and Session State Blocking

+0

완벽한 고맙습니다! – RainMan