我正在使用一个使用可扩展网络服务器的托管服务提供商,也就是我可以通过单击一个按钮从 1..n 扩展。
我想用我的应用程序做的是识别浏览我网站的人的单个 session ,并将他们的状态存储在数据库中。
现在因为主持人不使用粘性 session ,我本来会使用的 Session Id
将不起作用,它可能会因请求而异。
我可以使用什么替代标识符来标识单个用户 session 并且当然是安全的?
(为清楚起见,我不会提供用户名或任何有关用户的数据。)
最佳答案
通常人们会为此使用数据库后端,因为数据库维护的 session 信息可以被任何网络服务器访问,而不依赖于网络服务器粘性。
在访问者首次访问网站时(请求中没有 cookie 提供的 session ID),它可以设置一个带有 session ID 的 cookie - 例如GUID - 并使用 session ID 将 session 信息添加到数据库。
在随后访问该网站时(如果 cookie 未被清除,则在请求中使用 session ID),任何 n 网络服务器都可以通过其 cookie 提供的 ID 和查找来识别 session 后端数据库中的相关 session 信息。
当然,Cookie 的用途更广泛 - 不仅仅是 session ID;但对于典型的、更广泛的 session 信息(即通常包含敏感信息)来说,它们是一个糟糕的选择。
关于c# - 在网络场场景中工作时,我可以使用什么作为通用 session ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21768985/