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

时间:2012-06-14 11:46:38

标签: c# session variables

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

2天后,我想放弃cookie,看看是否有其他方法可以达到同样的目标

我读过这篇文章http://msdn.microsoft.com/en-us/library/ms178581.aspx 但我不确定我能否实现我想要的东西。

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

2 个答案:

答案 0 :(得分:3)

根据您正在寻找的持久性级别,您还可以通过其他几种方式执行此操作。第一种是使用会话来保存这些设置。但是,如果您使用会话,则设置只会在会话执行时生效。如果您的网站具有某种身份验证界面,则可以将设置存储在相对于用于身份验证的用户名的数据库中。如果您没有涉及身份验证并且只是想记住用户带有特定的计算机/设备,您可以通过脚印系统(非常简单)来实现相同的结果,并将该脚印存储在与任何设置相关的数据库中会遇到。

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

答案 1 :(得分:3)

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

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

我的意思是,可能还有其他方法 - 在每一页上保留一个隐藏的价值,但我认为这甚至会变得更加“丑陋”。您希望将该信息保留在您正在呈现的页面/信息之外。