作者:Martha829 | 来源:互联网 | 2024-11-01 20:27
本文深入探讨了ASP.NET中ViewState、Cookie和Session三种状态管理技术的区别与应用场景。ViewState主要用于保存页面控件的状态信息,确保在多次往返服务器过程中数据的一致性;Cookie则存储在客户端,适用于保存少量用户偏好设置等非敏感信息;而Session则在服务器端存储数据,适合处理需要跨页面保持的数据。文章详细分析了这三种技术的工作原理及其优缺点,并提供了实际应用中的最佳实践建议。
类型 |
值保存在哪 |
值的有效范围 |
备注 |
View State |
客户端 |
不能跨页面传递,只能在当前页面保存数据。 |
在HTML中可以看到ViewState值,不过是加密。不是明文。 ViewState是保存页面数据的默认方法。 客户端将页面submit给服务器是,ViewState中就保存着各个控件的数据、和页面的其他数据。 经过设置,可以禁用ViewState。 |
Control State |
客户端 |
同ViewState |
与 View State区别:Viewstate可以经过设置禁用。假如你自定义一个控件,如果将值保存在ViewState的话,在禁用Viewstate时,服务器可能无法获取控件数据,这时候你需要将控件数据保存在Control State中。 |
Hidden Fields |
客户端 |
同ViewState |
Hidden Fields就是保存数据,但是浏览器不会将它呈现和渲染。但是可以从HTML源码中直接看到对应的值,而且还是明文的,用户当然也就可以修改Hidden Fields值。 |
COOKIE |
客户端 |
可以跨页面 |
保存在客户端的文本文件中,或者是内存中。 可以指定COOKIE的有效期。 |
Query Strings |
客户端 |
同 ViewState |
Query Strings很简单理解,它就保存在URL中的字段。 |
Session State |
服务器 |
一次Session有效,可以跨页面。 |
最典型的应用:保存登录账户信息。 |
Applicant State |
服务器 |
Websites运行阶段 |
IIS或者Websites重启后Applicant State级无效。 |
Profile Properties |
服务器 |
可以永久保存 |
ASP.NET可以通过 Profiles Properties保存指定用户的信息,通过SqlProfileProvider可以将数据保存到SQL DB中,也就是说你可以将Profile Properties永久保存。 |
参考:http://msdn.microsoft.com/en-us/library/75x4ha6s.ASPX
博主地址:blog.csdn.net/zhang_hui_cs
ASP.NET 的 ViewState COOKIE Session 等的比较,布布扣,bubuko.com