分享
 
 
 

ASP网页访问权的控制

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

在浏览器/服务器应用中,如果允许客户使用浏览器通过匿名身份访问网页,那么进一步限制客户访问具体的网页通常要客户表明身份(例如提示登陆),在网页初始部分验证客户的身份,如果通过身份验证,则可浏览到网页的具体内容,否则提示访问受到限制。

一般的浏览器/服务器应用应有一个主页,其上有进入不同网页的超链接。在Active Server Page应用中,我们知道,可以在进入主页时进行一次登录,把登录成功信息保存会话变量中,然后在进入该应用的其它网页时,只需检验这个会话变量,无需再做登陆验证。通常的做法是在每个网页的开始部分检验客户是否登录过,如果没有登录,转入登陆页完成登陆;如果登陆过,则显示网页内容。扩展这种检查,可以进一步检查不同的客户能否访问网页内容,如果无权访问,给出提示。不过这种在进入到具体的网页后才验证身份,对于无权访问该网页的客户来说就有一种进入死胡同的感觉。如果能够在超链接点击时即给予无权访问的提示,并且保持超链接不向下进入,可以给客户一个更好的印象。

要做到这一点,首先要限制客户直接在地址栏输入受限网页的名字进入,保证客户从一公共入口网页(比如主页)进入,然后在链接受限网页的公共入口网页页上根据客户身份来确定他能否进入即可。限制的方法是设立一个网页可进入标志。如果客户从公共网页上进入,在公共网页上设立允许标志,在每个受限网页的开始部分检查这个标志,如果标志为不允许,说明客户企图直接在地址栏输入网页的名字进入,提示访问受限,不显示内容或转入登录网页。

另一项工作是在公共网页上检查其上的受限网页的超链接,如果允许客户进入,在进入受限网页检查完进入标志后,立即清除允许标志;如果不允许进入,点击超链接时给予提示。下面是源代码。

以下文件为受限网页,取名为page1.asp

< %@ Language=VBScript % >

< % if not Session("fromdefaultpage")

then //检查进入标志

Response.Write "不是从公共网页进入,不能浏览本页内容。"

Response.end

else

Session("fromdefaultpage")=false

//取消允许进入

end if

% >

< HTML >

< HEAD >

< META NAME="GENERATOR"

Content="Microsoft Visual Studio 6.0" >

< /HEAD >

< BODY >

< P >这是本页的正常内容。< /P >

< /BODY >

< /HTML >

以下文件为公共入口网页,取名为page.asp

< < %@ Language=VBScript % >

< % dim conn,rs,acl

set conn=Server.CreateObject("ADODB.Connection")

ConnectionString = "DSN=mssql;Description

=Microsoft SQL Server 7.0; SERVER=wwwserver;

UID=ddy;APP=vi6;WSID=WANGPUQUAN;DATABASE=webapp"

conn.ConnectionTimeout = 30

conn.Mode = 3

conn.Open Connectionstring,"ddy","2louddy"

set rs=conn.Execute ("select acl from

userlist where username='u1'")

if not rs.EOF then

acl=rs(0)

end if

set rs=nothing

set conn=nothing

session("fromdefaultpage")=true % >

< HTML >

< HEAD >

< META NAME="GENERATOR"

Content="Microsoft Visual Studio 6.0" >

< script language=javascript >

function checkright()

{

var curElement=event.srcElement

if ("A"==curElement.tagName)

{

var ss="< % =acl % >"

var re=new RegExp(","+curElement.id+",","i")

if (ss.search(re) >=0)

{

alert("由于权限不足,不能访问此页!")

return false

}

else

{ return true }

}

}

< /script >

< /HEAD >

< BODY onclick="return checkright()" >

< p >这是公共入口页,在点击文档内容区时,

文档的onclick事件将检查点击的是否超链接,

如果是,将进一步检查其id是否在禁止访问的列表(,page1,page2,page3,)

中,如果在列表中,提示访问受限,不许进入;

如果不在列表中?佇斫搿?lt; /p >

< P >< a id=page1 href= Page1.asp >

为了限制page1.asp被访问,此处设定id为page1,

点击此超链接不能进入 < /a >< /P >

< P >< a id=page5 href= Page1.asp >

如果不限制page1.asp环梦剩瓒╥d为page0,

点击此超链接可以进入 < /a >< /P >

< /BODY >

< /HTML >

page.asp的说明:

一、 为了节省篇幅,此文省略了登录网页,查询访问权限时使用了名为u1的用户名。

二、 用户权限数据库表结构如下:

字段名 字段类型 字段描述

username char(10) 用户名

password char(10) 口令

acl varchar(1800) 禁止访问列表

三、 acl字段中保存禁止访问的ID列表,此例中对应用户u1的acl值为",page1,page2,page3,"。

四、 为了便于管理,可以把ID取作禁止访问的网页的文件名,超链接标记的ID与引用的网页文件名相同即可。此例中为简便起见,两个超链接引用了相同的网页,但分配了不同的ID值,其中page1在禁止访问列表中,因而不可访问,page0不在禁止访问列表中。

此例中是在每次进入公共入口页中查找访问控制列表,这样做的代价是频繁访问数据库。实际上可以在首次访问该页时把取出的acl值保存在会话变量中,在会话结束前再次访问只需访问会话变量即可,不过这样做在用户较多时服务器需要较多的内存来保存这些变量。可以视实际情况决定使用那一种方法。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有