电脑维修第一互动门户_www.PC106.com 为了方便您再次访问电脑维修站,请点击收藏本站!设为首页
操作系统 · 硬件学院 · 软件学院 · 网络学院 · DIY 经验 · 数据恢复 · 网站技术 · 维修网点 · IT 黄 页 · 大师答疑
故障症状 · 电脑优化 · 病毒快报 · 黑客安全 · 维修宝典 · 电脑保养 · 服 务 器 · 在线杀毒 · 在线电视 · 网址服务
维修 CPU·主板·硬盘·内存·显卡·显示器·键盘鼠标·声卡音箱·软驱光驱·打印机·机箱电源·BIOS·网卡·局域网·浏览器
您现在的位置: 电脑维修 >> 网站技术 >> .NET技术 >> .NET基础 >> 网站技术正文
设定Cookie 变量的生命周期
作者:佚名 文章来源:不详 点击数: 更新时间:2007-2-3 15:06:47


    Cookie 变量虽然存放在Client 端机器上,却也不是永远不会消失的。系统预设给Cookie 变量的有效时间是1000 分钟,不过我们可以在程序中自行设定有效日期,只要指定Cookie 变量的Expires 属性即可。使用语法如下所示:

Response.Cookies(CookieName).Expires=#日期#

    若我们没有指定Expires 属性,则Cookie 变量将不会被储存,会像Session 一样浏览器关闭 结束浏览便被毁灭。不Cookie 一但设定有效期限后,除非我们将Expires 属性设为「dbNull」, 否则有日期期限的Cookie 无法被移除。所谓「dbNull」值代表「空」值,「空」的意思是什么 都没有;所以有设定有效日期的Cookie 就可以被移除。下列范例在使用者登入后,在一个月内 浏览页都不需要再登入;并且每次登入时,程序自动将Cookie 有效期限往登入日期后延长一个 月:

<Html>
<ASP:Panel Id="Pan1" Runat="Server">
<Form Runat="Server">
<Table>
<Tr>
<Td>账号:</Td>
<Td><Asp:TextBox Id="txtID" Runat="Server" /></Td>
</Tr>
<Tr>
<Td>密码:</Td>
<Td><Asp:TextBox TextMode="Password" Id="txtPassword"
Runat="Server" /></Td>
</Tr>
</Table>
<ASP:Button Id="btnSubmit" Text="确定" OnClick="btnSubmit_Click"
Runat="Server"/>
<ASP:Button Id="btnReset" Text="清除" OnClick="btnReset_Click"
Runat="Server"/>
<ASP:Label Id="Label1" Text="请输入账号及密码" Runat="Server"/>
</Form>
</ASP:Panel>
<ASP:Panel Id="Pan2" Runat="Server">
Hi! <ASP:Label Id="lblMsg" Runat="Server"/> ,欢迎光临
</ASP:Panel>
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,e As EventArgs)
If Request.Cookies.Item("MyWeb_UserID")=dbNull Or _
Request.Cookies.Item("MyWeb_UserID").Value="" Then
Pan2.Visible=False
Else
Response.Cookies.Item("MyWeb_UserID").Expires=Now.AddMonths(1)
lblMsg.Text=Request.Cookies.Item("MyWeb_UserID").Value
Pan1.Visible=False
End If
End Sub
Sub btnSubmit_Click(Sender As Object, e As EventArgs)
If txtID.Text="charles" and txtPassword.Text="1234" Then
Response.Cookies("MyWeb_UserID").Value=txtID.Text
Response.Cookies.Item("MyWeb_UserID").Expires=Now.AddMonths(1)
Pan1.Visible="False"
Pan2.Visible="True"
lblMsg.Text=txtID.Text
End If
End Sub
Sub btnReset_Click(Sender As Object, e As EventArgs)
txtID.Text=""
txtPassword.Text=""
End Sub
</Script>
</Html>

    上述程序代码范例中我们使用两个Panel,分别为Pan1 以及Pan2;Pan1 为要求使用者输入账号及密码,而Pan2 则为欢迎语。程序执行时若使用者的Cookie 不存在或没有数据,将欢迎语隐藏;如下列程序代码片段所示:

Sub Page_Load(Sender As Object,e As EventArgs)
If Request.Cookies.Item("MyWeb_UserID")=dbNull Or _
Request.Cookies.Item("MyWeb_UserID").Value="" Then
Pan2.Visible=False
Else
Response.Cookies.Item("MyWeb_UserID").Expires=Now.AddMonths(1)
lblMsg.Text=Request.Cookies.Item("MyWeb_UserID").Value
Pan1.Visible=False
End If
End Sub

    上列程序代码片段中我们先判断Cookie 对象是否存在,以及确定Cookie 中是有内容;如果Cookie 不存在或是Cookie 内没有资料,则显示Pan1 要求使用者登入的画面;倘若Cookie 存在,则显示Pan2 出现欢迎语:

    使用者若输入正确的使用者名称后,我们便将使用者账号写入Cookie 中,并指定有效期限为一个月内;如下程序代码片段所示:

Sub btnSubmit_Click(Sender As Object, e As EventArgs)
If txtID.Text="charles" and txtPassword.Text="1234" Then
Response.Cookies("MyWeb_UserID").Value=txtID.Text
Response.Cookies.Item("MyWeb_UserID").Expires=Now.AddMonths(1)
Pan1.Visible="False"
Pan2.Visible="True"
lblMsg.Text=txtID.Text
End If
End Sub

下次使用者再浏览网页的时候,只要在一个月内有登入过,就不需要再输入使用者账号及密码,而直接出现下列画面:



Cookie 验证的安全考量
    在使用Cookie 验证使用者时,必须要考虑到身分验证的问题。因为使用者可能在非私人的计算机上浏览,或是个人计算机的安全防护不完善;导致其它人可能使用同一个浏览器上站,这样一来任何人都可以顺利的通过Cookie 的验证。对于有机密考量的数据或是有价交易的处理,势必造成漏洞;设计这方面的网站时,要小心仔细考量Cookie 的应用。



上网速度更快更爽、更安全下载使用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号