|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。 在站点的页面之间传递参数的凡是办法是经由过程URL查询字符串,或经由过程在表单中设置埋没域的办法。别的的两种盛行办法是利用cookie,或利用ASP Session变量。在这篇文章外面,将会商若何利用cookie和session变量来办理用户对站点页面的会见权限。
利用cookie来跟踪会见者
跟踪会见者会见页面的传统办法是利用cookies,cookie就是存储在用户一端盘算机上的一个文本文件,当用户会见响应的域时,这些文件就被送到办事器上。做为根基使用,cookie被看成用户再次会见站点时验证和辨别注册用户的手腕,而不需求他们再次输出注册信息。一样,可使用cookie保留用户上一次会见站点的一些设置。
在ASP中利用cookie十分复杂,可使用Request对象的Cookies纠合取回一切保留在客户真个cookie数值,然后利用Response对象的Cookies纠合创立或修正cookie数值,并保留到客户端。
象ASP中很多对象一样,一个cookie不但可所以纠合中的一员,还可以自成为纠合。创立一个单一cookie十分复杂,代码以下:
Response.Cookies ("item-name") = "item-value"
创立一个包括多个数值的cookie,代码是:
Response.Cookies ("item-name")("sub-item-name") = "sub-item-value"
设置cookie的域属性、途径属性和利用到期工夫,相干代码是:
Response.Cookies ("item-name").domain = "domain-url"
Response.Cookies ("item-name").path = "virtual-path"
Response.Cookies ("item-name").expires = #date#
上面的例子在阅读器端创立了cookie选择,注重:必需在阅读器输入任何信息前创立cookie,由于它们是HTTP headers的一局部:
〈 %
Response.Cookies("SimpleCookie") = "SimpleExample"
Response.Cookies("CompoundCookie")("Value1") = "Value1" Response.Cookies("CompoundCookie")("Value2") = "Value2"
Response.Cookies("TimedCookie") = "TimedExample"
Response.Cookies("TimedCookie").path = "/" apply to our entire site Response.Cookies("TimedCookie").expires = #10/10/2005#
% 〉
〈 HTML 〉
〈 BODY 〉
...
〈 /BODY 〉
〈 /HTML 〉
读取cookies
经由过程利用request对象并遍历cookie纠合,就能够读取一切cookie的全体内容。假如有些cookie含有多个数值,就经由过程遍历谁人cookie本身纠合来输入。
〈 HTML 〉
〈 HEAD 〉〈 TITLE 〉Reading the Cookie Collection〈 /TITLE 〉〈 /HEAD 〉
〈 BODY 〉
〈 B 〉The contents of your Cookies are:〈 /B 〉〈 P 〉
〈 TABLE CELLPADDING=0 CELLSPACING=0 〉
〈 %
For Each Item in Request.Cookies
If Request.Cookies(Item).HasKeys Then
use another For...Each to iterate this collection
For Each ItemKey in Request.Cookies(Item)
Response.Write Item & "(" & ItemKey & ") = " _
& Request.Cookies(Item)(ItemKey) & "〈 BR 〉"
Next
Else
print the complete cookie string as normal
Response.Write Item & "=" & Request.Cookies(Item) & "〈 BR 〉"
End If
Next
% 〉〈 /TABLE 〉
〈 /BODY 〉
〈 /HTML 〉
下图显示了履行下面代码的了局。然而,当你如今封闭阅读器偏重新翻开时,再运转这些代码,除TimeCookie觉得的一切数值都消逝了。这是由于只要TimeCookie设置了“利用到期工夫”,其他确当阅读器封闭时就主动消逝了。
这里要会商利用cookie保留登录信息的成绩,而且看看在ASP页面间若何使用cookie数值。然而请记住:cookie仅仅被送往上次会见时地点途径不异的站点,也就是说cookie在初始设置时的情况中才干失效。假如没有设置cookie的path属性,它的数值默许就是现在创立时地点的虚拟途径。
这里有个例子描写保留登录信息到cookie中。因为没有设置“利用到期工夫”,所以以后用户会话停止后cookie也就不存在了。
...
Response.Cookies("User")("v1") = "〈 % = Request("v1") % 〉" username Response.Cookies("User")("v2") = "〈 % = Request("v2") % 〉" password Response.Cookies("User").path = "/adminstuff" apply to admin pages
...
如今就能够在用户恳求的每个页面中寻觅这个cookie了,假如没有找到,就重定向用户到登录页面:
...
If (Request.Cookies("User")("v1") 〈 〉 "alexhomer") _
Or (Request.Cookies("User")("v2") 〈 〉 "secret") Then
Response.Redirect "default.asp?nogood=yes&v1=" & Request.Cookies("User")("v1")
End If
...
利用ASP Session变量跟踪会见者
除利用cookie,咱们还可以充实使用ASP中的Session变量。咱们可以在用户Session变量中保留数值,只需session变量仍是激活的,这些保留的数值就能够被使用。凡是,这些session变量将在用户最初一次恳求页面后坚持20分钟的工夫,除非咱们利用Session.Abandon办法明白地释放这些session变量。同时,可使用ASP剧本中的Session.Timeout属性来设置这个过时工夫。
利用session变量跟踪会见者要比利用cookie更平安,由于用户的session变量的内容不会跟着页面恳求而在收集上传递。除初始登录之外,用户名与口令(或任何数值)一向保留在办事器上。咱们可以区分和认证会见者,将他们的登录信息保留在他们本人的Session对象中。当需求对会见者停止验证时,就从他们本人的Session对象中取会这些信息。举个例子,在用户登录后提交的页面中,到场以下代码:
...
Session("UserName") = Request("v1") username from logon dialog form
Session("Password") = Request("v2") password from logon dialog form
...
然后,当需求认证会见者时,就找到这些cookie并从中取回用户名和口令:
...
If (Session("UserName") 〈 〉 "alexhomer") _
Or (Session("Password") 〈 〉 "secret") Then
Response.Redirect "default.asp?nogood=yes&v1=" & Session("UserName")
End If
...
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|