当前位置: 首页 > 学习 > 电脑学习 > 程序设计 > C# > .NET > 正文

Session 物件

http://www.zk168.com.cn  招考学习网 2006-5-5 17:46:11
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--


    Session 对象的功能和Application 对象一样,都是用来储存跨网页程序的变量或是对象,但Session 对象和Application 对象变量有些特性不太一样。Session 对象变量只针对单一网页使用者,也就是说各个联机的机器有各自的Session 对象变量,不同的联机无法互相取。Application对象变量中止于停止IIS 服务,但是Session 对象变量终止于联机机器离线时,也就是当网页使用者关掉浏览器或超过设定Session 变量对象的有效时间时,Session 对象变量就会消失。Session 对象正确的对象类别名称是HttpSessionState,Application 对象一样是属于Page对象的成员;所以可以直接使用。Session 对象的使用方式和Application 对象变量相当类似,其使用语法如下:

    Session 也可以存放COM 组件,其使用语法如下:

    下表为Session 对象常用的属性:



    下表为Session 对象常用方法:



    Session 对象变量最常应用在存放使用者的状态。例如在使用者登入的页面上,我们可以将代表使用者登入网页的成功与否状态储存到一个变量中,然后在其它网页加入判断使用者是否登入成功与否的程序代码。如果登入成功才可以浏览某些网页,如果登入失败则限制或拒绝使用者的浏览。下列范例使用者必须成功通过登入网页EX16.aspx 的验证,才可以浏览EX17.aspx 网页。其验证的程序从会员数据表中判断使用者所填入的名称及密码是否正确,如下所示:

Dim strConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\InetPub\wwwroot\CR\CH08\MyWeb.mdb"
Dim strComStr As String = "Select * From Members Where UserId = '" &
txtID.Text & "' And UserPwd = '" & txtPassword.Text & "'"
Dim dscA As ADODataSetCommand = New
ADODataSetCommand(strComStr,strConStr)
Dim dsDataSet As DataSet = New DataSet()
dscA.FillDataSet(dsDataSet, "Members")
If dsDataSet.Tables("Members").Rows.Count=1 Then
Session("Id")=txtID.Text
Session("IsPassed")="True"
Page.Navigate("EX17.aspx") '将连结导向至EX17.aspx
Else
Label1.Text="验证失败! 请重新输入"
End If
End Sub
Sub btnReset_Click(Sender As Object,e As Eventargs)
txtID.Text=""
txtPassword.Text=""
End Sub
</Script>
</Html>

    上述范例我们将使用者所输入的使用者名称及密码转成SQL 查询叙述,并存放于变量strComStr中;如下所示:

    倘若使用者输入的账号及密码分别为「rex」以及「sewq」,则strComStr 的内容为「Select * FromMembers Where UserId = 'rex' And UserPwd = 'sewq'」。由于SQL 的语法规定字符串必需被单引号「'」包围,所以请特别注意单引号的部分。我们将上述SQL 陈述的执行结果填入DataSet对象中,并且判断DataTable 对象Rows 集合的Count 属性,如果为1 就表示有找到该使用者;如下程序代码片段所示:

Session("Id")=txtID.Text
Session("IsPassed")="True"
Page.Navigate("EX17.aspx") '将连结导向至EX17.aspx
Else
Label1.Text="验证失败! 请重新输入"
End If

    上述程序代码若使用者通过验证,则将Session 对象的Id 变量以及IsPassword 变量的值分别填入使用者所数入的账号以及True,然后将网页连结导向EX17.aspx。我们就可以在EX17.aspx在Page_Load 事件程序中取回Session 对象中IsPassed 变量,如下程序所示:

<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,e As Eventargs)
If Session("IsPassed")=Nothing Or Session("IsPassed")<>"True" Then
Response.Redirect("EX16.aspx")
End If
End Sub
</Script>
</Html>

    如果我们通过验证,就可以成功的浏览EX17.aspx 网页。倘若我们尝试直接利用浏览器直接浏览EX17.aspx 网页时,因为Session("IsPassed") 变量内并没有内容,所以网页会自动导向EX16.aspx 登入网页。

-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
最新入库:
 
·国企人力资源出路何在
·中国企业呼唤人才
·人力资源管理:从后台走向前台
·人力资源观误区
·美日人力资源管理模式比较及对中国乡镇企业的启示
·走出文件框框 人力资源的非常任务
·剖析"以人为本"
·大人力资源观
·也谈人力资源会计的确认与计量
·人才测评不等于绩效考核
相关内容:
 
网友点评:
 
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
友情提醒:
 1.库中的资料大都来自互联网、网友上传、各类书籍,在录入的过程中难免会出现错误,恳请网
 友来信指正!
 2.如果网友在本库中未能找到所需要的材料,请登陆到我们的论坛《招考学习网》版块!
 3.考友想加入招考学习网的编辑部,请发信到XueXiWang#Gmail.com(#改为@)附带个人简历
 4.如需转载请注明出处及作者,谢谢合作!
 5.如果您有更好的建议或意见请EMAIL:XueXiWang#Gmail.com (#改为@)
 6.凡标题中有注有“[NO]”字样均不含答案且答案整理中.
 7.如本库中转载文章涉及版权等问题,请相关网站或作者在两周内发邮件通知(EMAIL:  XueXiWang#Gmail.com (#改为@))我们,我们接到通知后立即删除该文章及链接!
你问我答 更多>>