Cookies 重复的cookie查询或在viewstate中存储?哪种做法更好?

Cookies 重复的cookie查询或在viewstate中存储?哪种做法更好?,cookies,asp.net-2.0,viewstate,Cookies,Asp.net 2.0,Viewstate,我有一个用户登录的内部网站。此数据保存为cookie。从那里,用户开始了他们的快乐之路。每隔一段时间,应用程序就会查询身份验证记录,以确定用户拥有哪些权限 我的问题是:在需要用户数据时只查询cookie,还是将用户信息保存在viewstate中更有效 [编辑]如下所述,会话也是一种选择。就我个人而言,我更喜欢使用a来存储东西,尽管这里的其他开发人员似乎认为这是不允许的 有一个警告:您可能希望在会话中存储用户的IP,并将其与用户的当前IP进行比较,以帮助避免会话劫持。可能这里的其他人对如何防止会话

我有一个用户登录的内部网站。此数据保存为cookie。从那里,用户开始了他们的快乐之路。每隔一段时间,应用程序就会查询身份验证记录,以确定用户拥有哪些权限

我的问题是:在需要用户数据时只查询cookie,还是将用户信息保存在viewstate中更有效


[编辑]如下所述,会话也是一种选择。

就我个人而言,我更喜欢使用a来存储东西,尽管这里的其他开发人员似乎认为这是不允许的


有一个警告:您可能希望在会话中存储用户的IP,并将其与用户的当前IP进行比较,以帮助避免会话劫持。可能这里的其他人对如何防止会话劫持有更好的想法。

您可以使用会话数据-这样您就知道,一旦您将会话数据存储在那里,用户就不能通过更改查询字符串来玩弄它。

Viewstate是特定于他们正在查看的页面的,因此一旦他们按照这种方式进行操作,它就会消失。这不是保存数据的好方法

您最好使用表单身份验证,它内置于ASP.NET中,您还可以将任何特定于用户的信息放入表单身份验证票证的值中。你可以在那里得到4000字节(加密后),这些字节应该可以容纳你需要的任何内容。它还负责允许和拒绝用户访问网站上的页面,您可以随时将其设置为过期


存储在会话中是一个“否”,因为它的伸缩性非常差(占用了服务器上的资源),而且它可能会让多个浏览器连接到同一服务器的用户感到恼火。有时这是不可避免的,但如果可以的话,你应该尽力避免

我会使用cookie方法。会话是可以的,但在重新编译时会被asp.net处理,如果您想在会话之后继续使用它,则必须使用非会话cookie。此外,如果您使用stateserver,它基本上也在做同样的事情(将会话存储在数据库中)。会话就像一个快速而肮脏的修复,真正的男人使用饼干