我目前正在研究一个网站,它会有大量的流量。该网站上只有4-5页,但我需要将第1页上选择的值传递到第2页,其中存储了更多值,直到用户到达第5页,其中所有值都传递给第三方系统XML。如何使用C#在网站上存储用户输入的值?
当前我使用一个字典对象,其中大约20个键存储在一个会话对象中,以保存不同页面中的值。我这样做是因为某些值不仅仅是简单的值,比如'name'或'age'值,但可以像第2页的XML调用的结果数据集一样复杂。
我已经阅读无处不在全球变量是不好的,所以我想知道在这个例子中是否有使用Sessions的替代方法?由于某些值需要存储的方式(即我的变量不仅仅是字符串/整数),我不能使用数据库来保存这些值。如果我要使用全局静态变量,我如何确保全局变量对每个用户都是唯一的?
感谢您的想法。
丰富
**编辑** 1 我存储ASP.NET会话状态,而不是INPROC当前会话。我只是想弄清楚我所做的是不好的做法,或者只是普遍接受的做事方式。例如,在第二页上,我得到一个XML结果,我将其作为数据集存储在会话中,供我的网站3/4页使用。我应该以另一种方式存储/传递这些信息吗?
我不明白这一点“我不能使用数据库来保存这些值,因为一些值需要存储的方式(即我的变量不只是字符串/整数)。”:你不能把任何东西都变成了数据库,XML,BLOBs。你可能会盯着一个来存储可乐,但... – serialhobbyist 2009-09-03 10:42:29
你的用户登录吗? – serialhobbyist 2009-09-03 10:43:30
我可以在数据库中存储某些值,但如果可能的话,我宁愿不将数据库和会话之间的用户/站点值分开,因为这可能是一团糟。理想情况下,我想将它们放在一起。用户在任何时候都不会登录该网站,因为它只是一个为租赁公司快速购买的网站。 – 2009-09-03 10:53:11