当用户请求网页时,服务器会检查是否存在这个用户的SessionID,如果用户有有效的SessionID,就代表用户处于一定的活动状态,并允许用户继续操作这个应用程序,如果没有SessionID,服务器对象会创建一个Session对象。
Session对象用于存储用户的信息,而这个信息是从用户登录开始,一直生存到用户关闭浏览器才会消失,当再次打开浏览器时,又会重新创建。
Session对象的属性
属 性 说 明
Count 获取会话状态集合中Session对象的个数
Contents 获取对当前会话状态对象的引用
Keys 获取存储在会话中的所有值的集合
SessionID 获取用于标识会话的唯一会话ID
TimeOut 获取并设置在会话状态提供程序终止会话之前各请求之间所允许的超时期限
Mode 获取当前会话状态模式
Session对象的方法
方 法. 说 明
Add 新增一个Session对象
Clear 清除会话状态中的所有值
CopyTo 将会话状态值的集合复制到一维数组中
Remove 删除会话状态集合中的项
RemoveAll 清除所有会话状态值
Session的存储
在ASP.NET中,Session的存储方式有三种
使用那种存储方式是在Web.config文件中进行设置的,先来看Web.config中关于Session的一段代码片断:
<sessionState mode="InProc" cookieless="false" timeout="20" />
还有一种Mode的值为StateServer,这种模式的特别之处是,重新启动IIS时,所保存的Session值是不会丢失的。
最后一种Mode属性的值为SQL Server,它是指该会话状态保存在有SQL Server数据库的计算机上,并且当数据库重启服务时,会话数据依然会保留。
利用Sesson传递用户登陆信息。核心代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox1.Text.Trim() != "")
{
Session["username"] = this.TextBox1.Text.Trim();
this.Response.Redirect("Default.aspx");
}
else
{
this.Literal1.Text = "请输入昵称!";
}
}