【问题标题】:.Net Core (2.1) User Session Settings.Net Core (2.1) 用户会话设置
【发布时间】:2019-01-08 01:49:56
【问题描述】:

我是 .Net Core 的新手,所以请原谅这些愚蠢的问题。 我正在将后端写入一个新应用程序,该应用程序封装了给定应用程序的所有业务逻辑,然后将打包在 NuGet 包中以供使用。

一旦完成,此包将通过多种方式使用 (1) Winforms 应用程序和 (2) 通过 Web 服务。 我有与当前用户会话相关的各种数据,这些数据需要在各个点存储和使用 - 例如进程标识符。 我原本打算将此信息存储为静态变量,但这仅适用于 winforms 应用程序。将此数据作为静态数据存储在 Web 服务中意味着其他用户会话/连接将使用相同的数据,而他们每个人都应该有自己的进程标识符。然后我想到了使用 httpcontext session 但显然这仅在不适合 winforms 的 web 环境中可用。

我的问题确实是 - 在网络核心世界中,最好将诸如此类的变量存储在当前用户会话中,然后在退出/完成进程时被丢弃? 我曾考虑将这些信息存储在线程中(暂时将异步放在一边),但这感觉不对 - 只是一种感觉 - 没有可靠的推理。 非常感谢任何人对此的任何想法/想法。

提前致谢

【问题讨论】:

    标签: c# .net-core session-state


    【解决方案1】:

    你想要的是感兴趣的进程通信。

    它与 .net core 或 winforms 无关。

    基本上,您可以将数据保存在 winforms 或服务或 webapp 边界之外的任何地方。

    如果临时需要存储数据,可以将数据保存在缓存中(例如redis缓存)。

    如果需要永久存储,您还可以将数据保存在数据库中。

    web app 和 winform 和 service 都应该可以访问数据库。

    应该有一个组件正在轮询,以便在 web 应用更新数据时告诉 winform 应用或服务。

    【讨论】:

    • 谢谢。我目前正在研究缓存路线。我不想使用数据库,因为它会增加时间和不必要的跳跃,但缓存可能会起作用 - 尽管由于技术限制可能是内存缓存而不是 redis。
    猜你喜欢
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2019-02-24
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多