Session对象
Session对象用于存储在多个页面调用之间特定用户的信息。Session对象只针对单一网站使用者,不同的客户端无法相互访问。Session对象中止联机机器离现时,,也就是当网站使用者关掉浏览器或者超过设定Session对象的有效时间,Session对象变量就会关闭。
Session对象常用集合
集合名 | |
Contents | 用于确定指定会话项的值或者遍历Session对象的集合 |
StaticObjuects | 确定某对象指定属性的值或遍历集合,并检索所有静态对象的所有属性 |
Session对象常用属性
属性 | |
TimeOut | 传回或者设定Session对象变量的有效时间,如果使用者超过有效时间没有动作,Session对象就会失效。默认值是20分钟 |
Session对象常用方法
方法 | |
Abandon | 该方法结束当前会话,并且清楚会话中的所有信息。如果用户随后访问页面,可以为它创建新会话(“重新建立”非常有用,这样用户就可以得到新的会话) |
Clear | 该方法清楚全部的Session对象变量,但不结束会话 |
使用Session对象存储和读取数据
使用Session对象定义的变量为会话变量。会话变量只能用于会话中特定用户。应用程序的其他用户不能访问或者修改这个变量,而应用程序变量则可以由应用程序的其他用户访问或者修改。Session对象定义变量的方法与Application对象相同,都是通过"键/值"对的方式来保存数据,语法如下:
Session[varName]=值; //varName为变量名称
实验一个例子,我们最常用的实例,就登录吧!
我们随便添加2个页面进来,Default.aspx默认页面,该页面让用户填写信息登录,Welcome.aspx该页面在初始时候展示用户信息。项目具体如下:
我们的Default.aspx页面大体如下:
再来用Session对象来实现登录,这里只简单的实验一下Session怎么来存储信息。Default.aspx.cs代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebSessionDemo { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnLogin_Click(object sender, EventArgs e) { if (this.txtUserName.Text == "admin" && this.txtPwd.Text == "www.admin.com") { //用Session变量记录用户名 this.Session["UserName"] = this.txtUserName.Text; //用Session变量记录用户系统的时间 this.Session["LoginTime"] = DateTime.Now; this.Response.Redirect("~/Welcome.aspx"); } else { this.Response.Write("<script>alert(‘登录失败!请查找原因’)</script>"); } } protected void btnCancel_Click(object sender, EventArgs e) { //清空 this.txtUserName.Text = ""; this.txtPwd.Text = ""; } } }
Welcome.aspx页面是取出Session对象的值并且展示出来,具体代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebSessionDemo { public partial class Welcome : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.Response.Write("欢迎用户" + this.Session["UserName"].ToString() + "登录系统<br/>"); this.Response.Write("你登录的时间为:" + this.Session["LoginTime"].ToString()); } } }
写好后运行,运行Default页面,不能直接运行Welcome页面(直接运行Welcome会有未将对象实例化的异常,因为没有做处理,这里只是为了演示Session存储数据和取数据),所以运行效果如下:
......
到此关于Session对象就简单的了解到这里!