咖啡虫之家

我的日历
友情链接
访问计数
最新评论
获取RSS
我的 Blog:
kafeichong 最新的 20 条日志
[javascript]
[asp]
[常识]
[SQL]
[文学]
[Dreamweaver]
[网页设计]
[flash]
[片言碎语]
[php]
[web standard]
全站 Blog:
全站最新的 20 条日志

ASP中简易用户访问控制

Author:咖啡虫 PublishTime:2004-7-25
在站点的页面之间传递参数的通常方法是通过URL查询字符串,或者通过在表单中设置隐藏域的方法。另外的两种流行方法是使用cookie,或者使用ASP Session变量。在这篇文章里面,将讨论如何使用cookie和session变量来管理用户对站点页面的访问权限。
1.使用cookie来跟踪访问者
跟踪访问者访问页面的传统方法是使用cookies,cookie就是存储在用户一端计算机上的一个文本文件,当用户访问相应的域时,这些文件就被送到服务器上。做为基本应用,cookie被当作用户再次访问站点时验证和区分注册用户的手段,而不需要他们再次输入注册信息。同样,可以使用cookie保存用户上一次访问站点的一些设置。
2.使用cookie来跟踪访问者
在ASP中使用cookie非常简单,可以使用Request对象的Cookies集合取回所有保存在客户端的cookie数值,然后使用Response对象的Cookies集合创建或者修改cookie数值,并保存到客户端。
3.使用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#
4.使用cookie来跟踪访问者
下面的例子在浏览器端创建了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 asp,php,jsp,cnbruce,access,sqlserver,oracle
通过使用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 〉
这里要讨论使用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

 

Powered by 5DBlog.com