• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

ASP应用程序设计的Web状态管理分析(2)

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网      在Web上创建状态
  
    在页面请求和站点访问之间提供状态常用的方法是通过cookie。我们在前面的章节中已经看到,如何在客户端的计算机中存放相应的值,这些值与每个页面请求一起发送给对此cookie有效的域。通过用ASP检查和更新cookie,在某种程度上能够保持一个状态。可以使用所包含的信息来识别用户,然后把用户连接到一个已存储相应值的集合。
  
    例如,可以检测一个用户请求是否包含一个站点指定的cookie。如果不包含,则为该用户分配一个某种类型的标识,指明一个数量,并存储在带有一个长有效期的cookie中。以后该用户对这个站点的每一次访问,都能够检测到cookie并更新所包含的信息。同时可以收集有关访问的次数和持续时间的数据,并存储在服务器上,以备将来使用。
  
    但是,如果用户转移到另一个计算机,或删除了cookie,或者他们的浏览器拒绝接收发送给他们的cookie,会发生什么事情呢?在这种情况下,不能维持状态,因为下一次不能识别他们现在,Web上有许多cookie,大多数人会接受它们,而不加理会。如果打开浏览器中的“Warn before accepting cookies”选项,接着漫游几个大的站点,你就会明白其中的含意。
  
    1. 匿名访问者与授权的访问者
  
    如果认为cookie是一个有点草率的解决方案,可以使用更直接的方法。许多站点采用的一种方法是,在访问者点击一个站点时,或者点击一个要求验证身份的页面时,弹出一个进行登录的对话框。访问者首先必须进行注册,获得一个某种类型的用户名/口令的组合,才能允许访问相应的站点或页面。
  
    为了证实访问者是一个已知的并且合法的用户,在访问者的计算机上放置的一个cookie,它或者保存注册的详细数据,或者是一把表明已验证过身份的“钥匙(key)”。同时,访问者的详细数据永久地保存在服务器上,准备再次访问时使用。如果访问者的浏览器中有了这样一个cookie,他就可以自由地访问该网站,因为已经验证过了。
  
    如果cookie没有有效期限(Expires),cookie的值在关闭浏览器时自动消失,在下一次访问时必须重新注册和再次验证。当然,如果拒绝接收cookie或删除了cookie,就只能再次得到注册对话框。这样的话,如果不被识别,就不能访问该站点。
  
    通过强制用户就像注册到自己的网络一样注册到Web服务器,Windows 2000整体安全性能为IIS提供更强和更安全的验证功能。但是,这只能与Inte.net Explorer 3.0和之上版本的浏览器一起工作。IIS也可以使用BASIC验证允许非Microsoft浏览器注册Web服务器。
  
    2. 不再有匿名访问者
  
    在IIS Web服务器上使用ASP时,除非用户离开该站点到另一个网站或者关闭了浏览器,否则能在当前会话中跟踪用户。在本章的后面,将看到如何使用这个功能来标识一个访问者、存储用户的本地信息和提供状态。下面与已经讨论过的解决方案相比较,讨论其工作方式。
  ASP和IIS共同提出了一个用户会话的概念,通过ASP Session对象进行交互。在每个访问者第一次访问服务器上的一个ASP网页时,为他创建一个新的并且独立的会话对象,分配给该会话一个会话标识号,并把包含会话标识符的特殊加密版本的一个cookie发送给客户。
  
    cookie的路径(参看前面的章节有关cookie属性的描述)设置为运行在服务器上的ASP应用程序的根路径。这很可能上缺省的Web网站的根目录(即“/”),但也可能会是另外一个值(稍后会看到)。在cookie中没有提供Expires值,所以当浏览器关闭时,cookie值也就消失。
  
    每当这个用户访问这个ASP网页,ASP都会查找这个cookie。命名为ASPSESSIONIDxxxxxxxx,其中每个x是一个字母字符。从第2章图2-7所示的ServerVariables集合,能够在HTTP报头中看到它。
  
    但是,这个cookie不会出现在 Request.Cookies或Response.Cookies集合中,ASP把它隐藏起来,但仍保存在浏览器上。对于每个ASP网页请求,ASP都要查看该值。这个cookie包含的值,指明了这个用户的会话。因此,相应的Session对象(该对象在内存中已被处理,并且一直包含所有在前一页面请求过程中进行操作的值)的内容可以移交给ASP网页中的脚本。
  
    当然,如前所述,如果客户浏览器不接收或不支持这些cookie,这个处理将失败。在这种情况下,不能创建ASP会话,对这个访问者的状态也不进行自动维护。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网