是 Cookie 存储会话变量的唯一方法吗?

本文关键字:唯一 方法 变量 Cookie 存储 会话 | 更新日期: 2023-09-27 18:37:14

我想存储一个用户设置(语言)。 所以我可以在页面加载时获得相应的资源。我认为饼干会是要走的路,但这不是一个选择,太难了,因为我尝试了又尝试但没有成功。

2天后,我想放弃饼干,看看是否有其他方法可以实现相同的目标

我 http://msdn.microsoft.com/en-us/library/ms178581.aspx 阅读了这篇文章但我不确定我是否可以使用它来实现我想要的。

在我的情况下,我可以使用哪些饼干替代品?

是 Cookie 存储会话变量的唯一方法吗?

根据您正在寻找的持久性级别,还有其他几种方法可以做到这一点。第一种是使用会话来保存这些设置。但是,如果使用会话,则设置将仅与会话一样长。如果您的网站具有某种身份验证界面,则可以将设置存储在相对于用于身份验证的用户名的数据库中。如果您不涉及身份验证,并且只是想记住用户附带了特定的计算机/设备,则可以通过占用系统(并非微不足道)并将该占用空间存储在与它将遇到的任何设置相关的数据库中来实现相同的结果。

如果您无法使用这些选项,则 Cookie 将是您剩下的唯一选择。

使用 Cookie

保留会话 ID 的另一种替代方法是使用无 Cookie 会话管理,这在您链接到的文章中有所提及。 Cookie 不会与会话标识符一起保留在客户端计算机上,而是在查询字符串中。 这绝对是一个"丑陋"的解决方案,但它是您拥有的少数选择之一。 您可以保留随每个请求一起发送的 cookie,也可以在查询字符串上粘贴一些内容来标识请求。

无论哪种方式,您都需要某种方式让您的服务器获取标识符并检索您的会话数据 - 无论是从已知 cookie 还是从已知查询字符串值获取 ID。

我的意思是,可能还有其他方法——在每一页上都保持隐藏的价值,但我认为这只会变得更加"丑陋"。 您希望将这些信息排除在要呈现的页面/信息之外。