用ASP实现WEB页面分用户权限的访问

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

前几日上网,看到有网友在电脑报论坛的ASP版提出如下的问题:“我试着用ASP的方法为网页设置了口令,但是用户只要知道下一步链接的文件名, 就可以在地址栏输入该文件名而绕过口令文件直接浏览该文件。 怎样才能达到真正加密的目的:如果不输入口令、用户名就无法浏览网页?”

上面的问题,是在基于Internet/Intranet的网络中开发WEB应用时,经常要涉及的一个方面。对于用ASP开发的应用,根据个人经验,解决上面的问题,一般有2种方法,分别详细介绍如下:

例程说明

为说明方便起见,以下各方法假设针对如下的例子:

服务器IP地址为192.188.188.188;在服务器上开设一个虚拟目录:/mytest,所有测试文件均位于此路径下;主文件为myindex.asp,用户首要登录文件为mylogin.asp;测试的合法用户名为mytest,口令也为mytest。

解决方法1

- 编写mylogin.asp内容

< %@ Language=VBScipt % >

< @Response.Buffer=true% >

< html >< head >< title >用户登录< /title >< /head >

< body >

< %

if request("username")="mytest" and request("password")="mytest" then

response.redirect "myindex.asp"

end if

% >

< font style="font-size:11pt" >请输入登录用户名称与口令"< /font >< br >

< form action="mylogin.asp" method="post" >

< br >用户名称:< input type=text name="username" >

< br >用户口令:< input type=password name="password" >

< br >< input type=submit value="登录" >

< /form >

< /body >< /html >

- 编写一个ASP包含文件,名字为myrefer.asp

< %@ Language=VBScipt % >

< @Response.Buffer=true% >

< %

myvaild=instr(lcase(request("HTTP_REFERER")),"http://192.188.188.188/mytest")

if myvaild=0 then

response.redirect "mylogin.asp"

end if

% >

- 修改目录下的其他ASP文件头

修改目录下的其余ASP,在每个ASP文件的头部,都添加如下的代码:

< %@ Language=VBScipt % >

< !-- #include file="myrefer.asp" -- >

'以下为原文件内容

......

解决方法2

- 编写global.asa文件

编写global.asa文件,放置在虚拟目录http://192.188.188.188/mytest/下,为了达到用户登录检查的目的,只修改其中Session_OnStart的部分。

......

< Script RUNAT=Server Language=VBScript >

Sub Session_OnStart

mystartpage="/mytest/mylogin.asp"

mycurrent=lcase(request("SCRIPT_NAME"))

if strcomp(mycurrent,mystartpage) then

response.redirect mystartpage

end if

End Sub

< /Script >

......

总结

从以上2种实现方法可以看出,第2种比较简单,但需要有单独的虚拟目录,这样才能编写global.asa文件使其生效;第一种方法,虽然代码比较多,但不是所有文件都必须在虚拟目录中,这对于申请个人主页的用户,是比较可行的一种方法。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航