|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。会见|页面 在计划网页时,常常碰到某些页面需限权会见的情形。好比,一个公司的某些产物只让某一或某些供给商或客户扫瞄。那末,我们怎样完成这一功效呢?本文,笔者将向读者先容几种限定客户会见权限的办法。
一般,我们在计划过程当中会晤临三种情形:某一页面只让某一用户扫瞄、某一页面只让某些用户扫瞄和某些页面只让某些用户扫瞄。第一种情形很复杂,笔者不再叙说,下文将具体先容后两种情形的计划办法。
1、某一页面只让某些用户扫瞄
将这些客户的信息保留在数据库中,若能在数据库中检索到客户输出的姓名和暗码就同意会见该页面。
Protect.asp文件′需限权会见的页面
〈html〉〈head〉〈title〉赛迪主页〈/title〉〈/head〉〈bodybgcolor="#00FFFF"〉
′此处可输出该页面的别的内容
〈formaction="Protect.asp"method="post"〉
请输出姓名:
〈inputtype="text"name="text"〉
请输出暗码:〈inputtype="password"size="20"name="password"〉
〈inputtype="submit"name="B1"value="查询"〉〈/p〉〈/form〉
〈%setconn=server.createobject("adodb.connection")
conn.open"asptest"
′asptest是寄存客户信息的表单permission地点的数据库的名字
sql1="selectfrompermissionwherexm="&&request.form("text")&&"andmima="&&request.form("password")&&""
setrs=conn.execute(sql1)%〉
′假如数据库中存在客户输出的姓名和暗码,就显现页面product.asp的超等链接
〈%ifnotrs.eofthen%〉〈ahref="product.asp"〉本公司的产物〈/a〉
〈%endif%〉〈/body〉〈/html〉
2、某些页面只让某些用户扫瞄
我们能够计划一登录页面register.asp,假如客户没有登录,在进进每一个需限权会见的页面时强迫客户先会见页面register.asp完成登录。乐成登录以后主动前往到方才要会见的页面。我们可用cookies和session两种办法来完成。
1.用cookies完成
假如客户已登录过,就把登录的信息纪录在客户真个cookies中,以后客户便可间接扫瞄别的限权会见的页面。
register.asp
〈%ifrequest.form("b1")="提交"then
setconn=server.createobject("adodb.connection")
conn.open"asptest"
sql1="select*frompermissionwherexm="&&request.form("name")&&"andmima="&&request.form("password")&&""
setrs=conn.execute(sql1)
ifnotrs.eofthen
response.cookies("register")="true"
rs.close
conn.close
endif
′若数据库中存在该用户的信息,就纪录该用户乐成登录的标志到cookies中
endif%〉
〈html〉〈head〉〈/head〉
〈bodybgcolor="#c0c0c0"〉
〈palign="center"〉〈big〉〈big〉〈big〉敬爱的客户,请您登录!〈/big〉〈/big〉〈/big〉〈/p〉〈hr〉
〈formaction="register.asp"method="post"name="form1"〉
〈divalign="center"〉〈p〉姓名:
〈inputname="name"size="13"〉〈/p〉
〈p〉暗码:〈inputname="password"
size="13"type="password"〉〈/p〉〈/div〉
〈divalign="right"〉〈inputtype="submit"name="b1"value="提交"〉〈/div〉〈/form〉〈/body〉〈/html〉
Protect.asp文件′需限权会见的页面
〈%ifrequest.cookies("register")〈〉"true"then
response.redirect"register.asp"
endif%〉
′若客户未登录,则强迫客户登录
〈html〉〈head〉〈/head〉
〈bodybgcolor="#00FFFF"〉
′此处是需回护的页面内容
〈/body〉〈/html〉
2.用session完成
session是用户级的全局变量,我们将客户乐成登录的信息纪录到session中后,用户便可间接扫瞄别的限权会见的页面了。
global.asp
〈scriptlanguage=vbscriptrunat=server〉
subSession_onstart
session("register")="false"
′纪录客户乐成登录的信息
session("lognumber")=0
′纪录客户实验登录的次数,最多同意实验三次
session("prescript")=""
′纪录客户要会见的页面,以便登录后前往该页
endsub
〈/script〉
register.asp
〈%ifrequest.form("b1")="提交"then
set
conn=server.createobject("adodb.connection")
conn.open"asptest"
sql1="select*frompermissionwherexm="&&request.form("name")&&"andmima="&&request.form("password")&&""
setrs=conn.execute(sql1)
ifnotrs.eofthen
session("register")="true"
′若数据库中存在该用户的信息,就纪录该用户乐成登录的标志到register变量中
rs.close
conn.close
response.redirectsession("prescript")
′乐成登录后主动前往方才要会见的页面
endif
ifsession("lognumber")〈3then
session("lognumber")=
session("lognumber")+1
response.redirect"register.asp"
else
response.redirect"sorry.asp"
endif
′同意实验登录三次,若均未乐成,则克制会见并同时显现页面sorry.asp
endif%〉
〈html〉〈head〉〈/head〉
〈bodybgcolor="#c0c0c0"〉
〈palign="center"〉〈big〉〈big〉
〈marqueealign="middle"
behavior="alternate"〉接待您的到临,请您先登录!〈/marquee〉〈br〉
〈%ifsession("lognumber")〉0then%〉
输出有误!请从头输出姓名和暗码!
〈%endif%〉
〈/big〉〈/big〉〈/p〉〈hr〉
〈formaction="register.asp"method="post"name="form1"〉
〈divalign="center"〉〈p〉姓名:
〈inputname="name"size="13"〉〈/p〉
〈p〉暗码:〈inputname="password"
size="13"type="password"〉〈/p〉〈/div〉
〈divalign="right"〉〈inputtype="submit"name="b1"value="提交"〉
〈/div〉〈/form〉〈/body〉〈/html〉
Protect.asp文件 ′需限权会见的页面
〈%ifsession("register")〈〉"true"then
session("prescript")=
request.servervariables("script_name")
response.redirect"register.asp"
endif%〉
′纪录该页面的路径到prescript变量中并强迫客户登录
〈html〉〈head〉
〈metahttp-equiv="Content-Type"
content="text/html;charset=gb_2312-80"〉〈/head〉
〈bodybgcolor="#00FFFF"〉
′此处可输出该页面别的内容的剧本
〈/body〉〈/html〉
以上几种办法,计划者能够依据体系的必要举行天真使用
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失; |
|