广·西·电·脑·服·务·网                                     设为首页  收藏本站
首 页 IT 报 道 操作系统 硬件学院 软件学院 网络学院 服 务 器 软件下载
DIY经验 数据恢复 维修宝典 电脑保养 故障症状 黑客安全 病毒快报 电脑优化
维修网点 IT 黄 页 网络游戏 大师答疑 网站技术 动漫游戏 服务社区 素材图片
 广西电脑服务网 ·广西最大的电脑服务平台
您现在的位置: 广西电脑维修在线 >> 网站技术 >> .NET技术 >> .NET基础 >> 网站技术正文
Session 物件
作者:佚名 文章来源:不详 点击数: 更新时间:2007-2-3 15:09:04


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

Session("变量名")="内容"

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

Session("名称")=Server.CreateObject(ProgId)

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



    下表为Session 对象常用方法:



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

Sub btnSubmit_Click(Sender As Object,e As Eventargs)
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中;如下所示:

Dim strComStr As String = "Select * From Members Where UserId = '" & _
txtID.Text & "' And UserPwd = '" & txtPassword.Text & "'"

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

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

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

<Html>
您的输入已经通过验证.
<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 登入网页。





 
网站技术录入:admin    责任编辑:admin 
  • 上一篇网站技术:

  • 下一篇网站技术:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

     IT图片报道

    联想D222到货22寸LCD迅速串红市场

    入门超频王!双敏945PL狂跑1200 F

    冠捷春季新品197V+突破高对比上市

    核心500MHz!性价比王者双敏X1650
     IT热点报道

    普通IT报道 联想D222到货22寸LCD迅速串红市场
    推荐IT报道 入门超频王!双敏945PL狂跑1200 FSB!
    推荐IT报道 冠捷春季新品197V+突破高对比上市
    普通IT报道 核心500MHz!性价比王者双敏X1650GT登场!
    普通IT报道 549元双敏945GC主板到货!
    普通IT报道 宏碁笔记本存储王As3683升级送礼!
    普通IT报道 魅族MP3全线暴跌 M6SP4G版不足700
    普通IT报道 OPPO首款顶级4.3寸大屏MP4 A3上市
    普通IT报道 维修服务拯救PC,谁拯救维修服务?
    普通IT报道 影驰8800GTS游戏盒子上市
    关于公司 | 免责声明 | 广告服务 | 招贤纳士 | 联系我们 | 友情链接 | 网站地图 1 2 3
    Copyright@2005 - 2006  http://www.GXF.com.cn  All Right Reserved  
    桂ICP备06002242号

    技术咨询
    22097366
    10231086
    30636841
    技术交流群
    27717914