如何在不使用.net会话的情况下共享用户特定的数据

本文关键字:共享 情况下 用户 数据 会话 net | 更新日期: 2023-09-27 18:01:53

在这里我遇到了一种情况,我需要在不使用会话的情况下在页面之间共享用户特定的数据(如姓名/姓氏/电子邮件等)。

我不能使用session的原因是我们正在使用负载平衡器,它可能会分配不同的机器来服务用户的请求。

所以我的公司严格规定要避免使用会话。

由于一些限制,我们不能使用数据存储(sql)来存储会话。

现在,这里的一个关键问题是我们如何在不使用会话/cookie/数据存储的情况下共享用户特定的数据。

我留下了一个选项,在每个请求上ping数据库以获取用户特定的信息(这显然不是推荐的方法)

有谁能帮我建议一下怎样才能跨页面共享用户特定的信息吗?

注意:我使用的是MVC4 (Razor引擎)

如何在不使用.net会话的情况下共享用户特定的数据

我留下了一个选项,以ping数据库上的每个请求获取用户特定的信息(这显然是不推荐的)方法)

事实上,这是推荐的方法。如果您担心可能会对数据库产生大量流量,那么您总是可以缓存结果。要小心使用特定于用户的缓存键,以避免在用户之间混淆信息。您还可以考虑跨节点使用分布式缓存,例如memcached

可以使用cookie。

  • 它会在浏览器和服务器之间传输时消耗额外的负载。
  • 将存储在客户端机器中。
  • 您可以使用自定义代码加密/解密数据以确保安全性。