Session
每个用户相互独立。
默认20分钟过期。
可以保存任意的对象。
占用服务器资源。
Application
所有用户共享。无过期时间。
可以存任意的对象。
使用时需要锁定,避免并发
Application.Lock(); Application["data"] = DateTime.Now; Application.UnLock();
QueryString
地址栏里的?id=xxx
只能存字符串。而且有长度限制。
Cookie
保存在硬盘上。只要是这台机器,访问相同的网站Cookie就跟着提交到网站服务器上去了。除非过期,否则总是可用。
每次提交都跟着表单向服务器回环。
Cookie中只能存字符串。
写Cookie
Response.Cookies["data"].Value = DateTime.Now.ToString();
读Cookie
this.Title = Request.Cookies["data"].Value.ToString();
ViewState
.net中特有的。存在页面的HTML代码中的。只要页面一旦关了,ViewState就没了。
每次提交也都跟着表单向服务器回环。
ViewState可以存任意的对象。(保存与取用是通过序列化与反序列化实现的)
ViewState["data"] = DateTime.Now.ToString(); this.Title = ViewState["data"].ToString();