ViewState 的优缺点:
(1) 优点:
耗费的服务器资源较少(与Application 、Session 相比)。因为,视图状态数据都写入了客户端计算机中。
易于维护。默认情况下,DotNet 系统自动启用对状态数据的维护。
因为它不使用服务器资源、不会超时,并且适用于任何浏览器。
(2) 缺点:
性能问题。由于视图状态存储在页本身,因此如果存储较大的值,用户显示页和发送页时的速度仍然可能减慢。ViewState 增加了发送到浏览器的页面的大小,同时也增加了回传的窗体的大小,因此不适合存储大量数据。
设备限制。移动设备可能没有足够的内存容量来存储大量的视图状态数据。
潜在的安全风险。视图状态存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但它可以被篡改。如果直接查看页输出源,可以看到隐藏域中的信息,尽管 ViewState 数据已被编码,并且可以选择对其进行加密,但始终不将数据发送到客户端才是最安全的。
Cookie 和Session 的区别:
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
1、cookie数据存放在客户端,因此客户端可以禁止cookie,session数据放在服务器端。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
5、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
6、所以建议:将登陆信息等重要信息存放为SESSION。其他信息如果需要保留,可以放在COOKIE中。