|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。会见|把持 在站点的页面之间传送参数的一般办法是经由过程URL查询字符串,大概经由过程在表单中设置埋没域的办法。别的的两种盛行办法是利用cookie,大概利用ASPSession变量。在这篇文章内里,将会商怎样利用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,由于它们是HTTPheaders的一部分:
〈%
Response.Cookies("SimpleCookie")="SimpleExample"
Response.Cookies("CompoundCookie")("Value1")="Value1"Response.Cookies("CompoundCookie")("Value2")="Value2"
Response.Cookies("TimedCookie")="TimedExample"
Response.Cookies("TimedCookie").path="/"applytoourentiresiteResponse.Cookies("TimedCookie").expires=#10/10/2005#
%〉
〈HTML〉
〈BODY〉
...
〈/BODY〉
〈/HTML〉
读取cookies
经由过程利用request工具并遍历cookie汇合,就能够读取一切cookie的全体内容。假如有些cookie含有多个数值,就经由过程遍历谁人cookie本身汇合来输入。
〈HTML〉
〈HEAD〉〈TITLE〉ReadingtheCookieCollection〈/TITLE〉〈/HEAD〉
〈BODY〉
〈B〉ThecontentsofyourCookiesare:〈/B〉〈P〉
〈TABLECELLPADDING=0CELLSPACING=0〉
〈%
ForEachIteminRequest.Cookies
IfRequest.Cookies(Item).HasKeysThen
useanotherFor...Eachtoiteratethiscollection
ForEachItemKeyinRequest.Cookies(Item)
Response.WriteItem&"("&ItemKey&")="_
&Request.Cookies(Item)(ItemKey)&"〈BR〉"
Next
Else
printthecompletecookiestringasnormal
Response.WriteItem&"="&Request.Cookies(Item)&"〈BR〉"
EndIf
Next
%〉〈/TABLE〉
〈/BODY〉
〈/HTML〉
下图显现了实行下面代码的了局。可是,当你如今封闭扫瞄器偏重新翻开时,再运转这些代码,除TimeCookie觉得的一切数值都消散了。这是由于只要TimeCookie设置了“利用到期工夫”,其他确当扫瞄器封闭时就主动消散了。
这里要会商利用cookie保留登录信息的成绩,而且看看在ASP页面间怎样使用cookie数值。可是请记着:cookie仅仅被送往上次会见时地点路径不异的站点,也就是说cookie在初始设置时的情况中才干失效。假如没有设置cookie的path属性,它的数值默许就是现在创立时地点的假造路径。
这里有个例子形貌保留登录信息到cookie中。因为没有设置“利用到期工夫”,以是以后用户会话停止后cookie也就不存在了。
...
Response.Cookies("User")("v1")="〈%=Request("v1")%〉"usernameResponse.Cookies("User")("v2")="〈%=Request("v2")%〉"passwordResponse.Cookies("User").path="/adminstuff"applytoadminpages
...
如今就能够在用户哀求的每个页面中寻觅这个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")
EndIf
...
利用ASPSession变量跟踪会见者
除利用cookie,我们还能够充实使用ASP中的Session变量。我们能够在用户Session变量中保留数值,只需session变量仍是激活的,这些保留的数值就能够被使用。一般,这些session变量将在用户最初一次哀求页面后坚持20分钟的工夫,除非我们利用Session.Abandon办法明白地开释这些session变量。同时,可使用ASP剧本中的Session.Timeout属性来设置这个过时工夫。
利用session变量跟踪会见者要比利用cookie更平安,由于用户的session变量的内容不会跟着页面哀求而在收集上传送。除初始登录之外,用户名与口令(大概任何数值)一向保留在服务器上。我们能够区分和认证会见者,将他们的登录信息保留在他们本人的Session工具中。当必要对会见者举行考证时,就从他们本人的Session工具中取会这些信息。举个例子,在用户登录后提交的页面中,到场以下代码:
...
Session("UserName")=Request("v1")usernamefromlogondialogform
Session("Password")=Request("v2")passwordfromlogondialogform
...
然后,当必要认证会见者时,就找到这些cookie并从中取回用户名和口令:
...
If(Session("UserName")〈〉"alexhomer")_
Or(Session("Password")〈〉"secret")Then
Response.Redirect"default.asp?nogood=yes&v1="&Session("UserName")
EndIf
...只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天 |
|