【问题标题】:ASP NET MVC 5 SessionStateASP NET MVC 5 会话状态
【发布时间】:2015-09-27 03:47:28
【问题描述】:

我正在开发一个 Intranet web 应用程序,我正在使用同一个列表生成 2 个视图,该列表每 60 秒更新一次。

我的问题是“有没有更好的方法(安全方面)来保存这个列表?”

【问题讨论】:

    标签: asp.net-mvc-5


    【解决方案1】:

    通常MVC中的SessionState是自找麻烦,MVC力求无状态(就像一般的网站一样)。很可能它会在某一时刻给你带来痛苦,因为它会使请求变得不确定。

    列表如何更新?它是一个文件吗?数据库?无论哪种方式,我都觉得存储库模式会更有意义。在第一次请求时缓存它并保存您上次更新的时间,然后在每次后续 Get if DateTime.Now > TimeLastGotten + 1 分钟时再次获取它并覆盖缓存。与使用 Session 相比,这具有更容易测试和模拟的额外好处。

    【讨论】:

    • 所以如果我使用这样的东西会更好吗? link
    • 那完全可以。您可以使用像静态 IEnumerable 字段这样简单的东西,或者像 .net 缓存实现(您链接的内容)这样更强大的东西,如果您愿意,您可以自己构建一个超级深度缓存。选择适合您需求的任何东西。我通常的模式是创建一个 IFooRepository,然后我可以使用不同的缓存或不缓存来对存储库进行许多实现,然后只需使用我的依赖解析器注册我想要的任何一个。这使您可以在需要时轻松删除缓存。有意义吗?
    • 太棒了!所以这样的事情是“正确的方法”?缓存缓存 = new Cache();缓存["saveList"] = ListToSave;和 ViewResult 中的相同内容我想使用列表吗?列表列表 = 缓存["saveList"];
    • 我设法让它工作了,感谢您的时间和帮助!:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多