Session状态没有大小限制,的Session状态中可以春出上千兆字节的数据。
Session状态可以保存复杂人对象,Cookie只能存储简单的字符串文本。
创建Session:
Session["message"]="Hello World!";
取得Session:
lblMessage.Text=Session["message"].ToString();
当使用Session状态时,一个名叫ASP.NET_SessionId的Cookie会自动添加到浏览器。
这个Cookie包含了一个唯一标识符,它可以在页面切换时跟踪用户。
创建Session对象时,这些对象存储在Web服务器上而不是Web浏览器上。ASP.NET_SessionId用于正确的关联数据和用户。
默认情况下,如果Cookie被禁用,Session状态也不能作了。
注意:不要滥用Session装提啊。因为会为每个请求页面的用户单独创建所有添加到Session状态中项目的副本。
如果放置一个包含400 条记录的DataSet到Session状态中,并且有500个用户在请求这个页面,内存中就会有500份 DataSet的副本。
默认情况下,如果用户 超过20分钟不请求任何页面,则ASP.NET Framework认为此用户已经离开网站。此时,该用户保存在Session状态中的数据会被遗弃。
用户操作Session状态的最主要的API是HttpSessionState类。
该对象被Page.Session、Context.Session、UserControl.Session、WebService.Session和Aplication.Session属性暴露。也就是说,基本上可以在任何地方访问Session状态