2017-04-05 90 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

相关问题