电脑维修第一互动门户_www.PC106.com 为了方便您再次访问电脑维修站,请点击收藏本站!设为首页
操作系统 · 硬件学院 · 软件学院 · 网络学院 · DIY 经验 · 数据恢复 · 网站技术 · 维修网点 · IT 黄 页 · 大师答疑
故障症状 · 电脑优化 · 病毒快报 · 黑客安全 · 维修宝典 · 电脑保养 · 服 务 器 · 在线杀毒 · 在线电视 · 网址服务
维修 CPU·主板·硬盘·内存·显卡·显示器·键盘鼠标·声卡音箱·软驱光驱·打印机·机箱电源·BIOS·网卡·局域网·浏览器
您现在的位置: 电脑维修 >> 网站技术 >> .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 登入网页。





上网速度更快更爽、更安全下载使用Firefox火狐浏览器

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

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

     IT图片报道

    14万元天价!640GB闪存硬盘美国问

    双核独显19寸液晶惠普PC机只卖49

    佳能MP160售价仅580元

    神舟双核液晶电脑3999起
     IT热点报道

    普通IT报道 中国电信称三年内实现光纤到户
    普通IT报道 广达个人电脑宣布已开始在江苏投入量产
    普通IT报道 14万元天价!640GB闪存硬盘美国问世
    普通IT报道 节后病毒猖獗系统瘫痪
    普通IT报道 AMD推出6款节能处理器
    推荐IT报道 双核独显19寸液晶惠普PC机只卖4999元
    普通IT报道 微软无奈下调Vista销售预期 XP仍是主角
    普通IT报道 佳能MP160售价仅580元
    推荐IT报道 神舟双核液晶电脑3999起
    推荐IT报道 4999元玩Vista 七喜12寸轻薄本升级
    关于公司 | 免责声明 | 广告服务 | 招贤纳士 | 联系我们 | 友情链接 1 2 3
    Copyright©2005 - 2007  http://www.PC106.com  All Right Reserved   
    桂ICP备06015569号