灵魂腐蚀 发表于 2015-1-16 22:05:00

ASP网页编程之ASP网页会见权的把持

ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用在扫瞄器/服务器使用中,假如同意客户利用扫瞄器经由过程匿名身份会见网页,那末进一步限定客户会见详细的网页一般要客户标明身份(比方提醒上岸),在网页初始部分考证客户的身份,假如经由过程身份考证,则可扫瞄到网页的详细内容,不然提醒会见遭到限定。  一样平常的扫瞄器/服务器使用应有一个主页,其上有进进分歧网页的超链接。在ActiveServerPage使用中,我们晓得,能够在进进主页时举行一次登录,把登录乐成信息保留会话变量中,然后在进进该使用的别的网页时,只需查验这个会话变量,无需再做上岸考证。一般的做法是在每一个网页的入手下手部分查验客户是不是登录过,假如没有登录,转进上岸页完成上岸;假如上岸过,则显现网页内容。扩大这类反省,能够进一步反省分歧的客户可否会见网页内容,假如无权会见,给出提醒。不外这类在进进到详细的网页后才考证身份,关于无权会见该网页的客户来讲就有一种进进逝世胡同的感到。假如可以在超链接点击时即赐与无权会见的提醒,而且坚持超链接不向下进进,能够给客户一个更好的印象。

  要做到这一点,起首要限定客户间接在地点栏输出受限网页的名字进进,包管客户从一大众出口网页(好比主页)进进,然后在链承受限网页的大众出口网页页上依据客户身份来断定他可否进进便可。限定的办法是设立一个网页可进进标记。假如客户从大众网页长进进,在大众网页上设立同意标记,在每一个受限网页的入手下手部分反省这个标记,假如标记为不同意,申明客户妄图间接在地点栏输出网页的名字进进,提醒会见受限,不显现内容或转进登录网页。

  另外一项事情是在大众网页上反省其上的受限网页的超链接,假如同意客户进进,在进进受限网页反省完进进标记后,当即扫除同意标记;假如不同意进进,点击超链接时赐与提醒。上面是源代码。

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

<%@Language=VBScript%>
<%ifnotSession("fromdefaultpage")
then//反省进进标记
Response.Write"不是从大众网页进进,不克不及扫瞄本页内容。"
Response.end
else
Session("fromdefaultpage")=false
//作废同意进进
endif
%>
<HTML>
<HEAD>
<METANAME="GENERATOR"
Content="MicrosoftVisualStudio6.0">
</HEAD>
<BODY>

<P>这是本页的一般内容。</P>

</BODY>
</HTML>

以下文件为大众出口网页,取名为page.asp

<<%@Language=VBScript%>

<%dimconn,rs,acl
setconn=Server.CreateObject("ADODB.Connection")
ConnectionString="DSN=mssql;Description
=MicrosoftSQLServer7.0;SERVER=wwwserver;
UID=ddy;APP=vi6;WSID=WANGPUQUAN;DATABASE=webapp"
conn.ConnectionTimeout=30
conn.Mode=3
conn.OpenConnectionstring,"ddy","2louddy"
setrs=conn.Execute("selectaclfrom
userlistwhereusername=u1")
ifnotrs.EOFthen
acl=rs(0)
endif
setrs=nothing
setconn=nothing
session("fromdefaultpage")=true%>

<HTML>
<HEAD>
<METANAME="GENERATOR"
Content="MicrosoftVisualStudio6.0">
<scriptlanguage=javascript>
functioncheckright()
{
varcurElement=event.srcElement
if("A"==curElement.tagName)
{
varss="<%=acl%>"
varre=newRegExp(","+curElement.id+",","i")
if(ss.search(re)>=0)
{
alert("因为权限不敷,不克不及会见此页!")
returnfalse
}
else
{returntrue}
}
}
</script>
</HEAD>

<BODYonclick="returncheckright()">
<p>这是大众出口页,在点击文档内容区时,
文档的onclick事务将反省点击的是不是超链接,
假如是,将进一步反省其id是不是在克制会见的列表(,page1,page2,page3,)
中,假如在列表中,提醒会见受限,不准进进;
假如不在列表中?许进进?lt;/p>
<P><aid=page1href=Page1.asp>
为了限定page1.asp被会见,此处设定id为page1,
点击此超链接不克不及进进</a></P>
<P><aid=page5href=Page1.asp>
假如不限定page1.asp环梦剩瓒id为page0,
点击此超链接能够进进</a></P>

</BODY>
</HTML>
  page.asp的申明:
  1、为了节俭篇幅,此文省略了登录网页,查询会见权限时利用了名为u1的用户名。

  2、用户权限数据库表布局以下:

  字段名字段范例字段形貌
  usernamechar(10)用户名
  passwordchar(10)口令
  aclvarchar(1800)克制会见列表
  3、acl字段中保留克制会见的ID列表,此例中对使用户u1的acl值为",page1,page2,page3,"。
  4、为了便于办理,能够把ID取作克制会见的网页的文件名,超链接标志的ID与援用的网页文件名不异便可。此例中为烦琐起见,两个超链接援用了不异的网页,但分派了分歧的ID值,个中page1在克制会见列表中,因此不成会见,page0不在克制会见列表中。

  此例中是在每次进进大众出口页中查找会见把持列表,如许做的价值是频仍会见数据库。实践上能够在初次会见该页时把掏出的acl值保留在会话变量中,在会话停止前再次会见只需会见会话变量便可,不外如许做在用户较多时服务器必要较多的内存来保留这些变量。能够视实践情形决意利用那一种办法。
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

莫相离 发表于 2015-1-18 20:12:51

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

小妖女 发表于 2015-2-5 15:03:32

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

admin 发表于 2015-2-12 10:46:50

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

再见西城 发表于 2015-3-3 03:15:26

不能只是将它停留在纸上谈兵的程度上。

柔情似水 发表于 2015-3-11 09:36:46

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

飘飘悠悠 发表于 2015-3-18 07:53:34

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

第二个灵魂 发表于 2015-3-25 17:25:54

那么,ASP.Net有哪些改进呢?
页: [1]
查看完整版本: ASP网页编程之ASP网页会见权的把持