仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 444|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之web使用程序用户形态保护

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。web|程序  假如你未几加当心,十分类似的情形会产生在web使用程序上。以是,开辟职员必要出格寄望可伸缩性和容错成绩,在计划使用程序时应当可以顺应将来的开展。保护用户形态是一个使用程序可伸缩性和容错的构成部分,你在站点计划阶段所做的决意关于未来站点的乐成相当主要。
  不合错误某些范例的形态举行保护,一个web使用程序是不克不及存在的。好比,一个在线购物使用程序必需要记着用户积累的订单,当用户在站点中一页一页地行进时,必需要往他们的购物筐中增加项目。HTTP,客户机与一切web使用程序运转的服务器之间的毗连,是一种无形态的协定。用户所哀求的每页都是被自力地处置的。以是web使用程序必需要有一些器材、一些中央来记着用户的信息。

  从用户抵达某一页面的时候入手下手,到他分开这一页面的时分,在他的举动过程当中,举动服务器页都利用同意用户与web站点之间举行交互感化的Session工具(大概等“租用工夫到”后主动保持Session)。你只必要赋值:
  Session("numItems")=3
  Response.WriteSession("numItems")
  我信任,Session工具从某些方面说是傻瓜型的,由于它同意各类痴肥的编程---开辟职员甚么时候想创立变量都能够,并且没无数据范例的限定。如许一来就很难发明Bug,并且假如有很多人一同做一个项目标话就更糟了。一方面是帮忙和撑持了痴肥编程法,另外一方面Session工具另有一个成绩--可伸缩性和容错成绩。
  一般,丈量一个web使用程序的办法是用利用一系列的robinDNS在多个web服务器上保护使用程序,或利用一个负载均衡路由器来分派从客户端到个中一个web服务器的哀求。可是,一旦用户用web服务器入手下手了一个ASPSession,今后的一切哀求就都要回到这个web服务器,这就是说,假如这个服务器关机了,用户就丧失了他们的session,假如服务器超载了,功能成绩就呈现了。有一个办理的举措:不要利用Session工具。
  另有别的办法保护用户形态。你能够用隐含布局或表单将它们存储在客户端,可是我想,如许你就必要一个平安的HTTP大概是冒将用户信息表露给外界的风险。究竟你是在客户端和服务器之间挪动着多于需要的数据。
  你能够把Session数据从使用程序自己转移开,从分歧的服务器驱动它。就象数据库卖力坚持数据一样,你必要另外一品种型的服务器来办理静态数据。你能够有很多个从静态数据服务器驱动的web服务器和一个用在容错方面的静态数据服务器的复成品。也许,这个奇奥的静态数据服务器能够在站点服务器上用Membership服务器和一个ActiveXUserObject(AUO)来实行。有关AUO的先容能够参考ActiveUserObjects&TheMembershipDirectory。
  在你将AUO用于Session数据之前,你必需已具有一个设置了AUO的Membership服务器,而且分派给了一个web站点。这些筹办好以后,还必要对Membership目次和AUO做进一步的设置。
  设置AUO
  将AUO用于Session形态的最坚苦的部分是设置它--并非真的坚苦,而是在入手下手利用它之前要做一点分外的事情。经由过程创立一个类和属性来界说形态信息看起来是甚么模样,必要为类的例示设置存储的中央。步骤是:
  界说你所想要的Session形态的属性。
  为session形态数据创立或选择一个类。
  为静态数据创立一个容器。
  设置一个第二AUO供给器。
  在面向工具的范畴内将一个属性当作是一个类的成员是成心义的。你必需将一个数据范例与每一个属性接洽起来,好比说,保护购物筐中包括的项目个数的购物筐类作为numeric属性。用站点服务器的MMC把一切的属性增添到Membership服务器的企图中。
  界说了一切属性以后,就要把它们与一个类接洽起来--一个类的例示作为一个工具--每一个工具能够有它本人的属性值。假如你已有了一个用来代表Session形态的类,就能够向它增添属性。不然你就必要用Membership目次办理器来创立一个新的类来代表Session形态。在我们的例子中将利用一个名为SessionStateClass的类。
  如今你必要创立一个第二AUO供给器,个中包括主AUO供给器的帮助数据。它能够是一个ODBC兼容数据库、别的目次服务大概Membership目次中的另外一个容器。在这个例子中,帮助数据是Session形态信息,存储在membership目次中的一个容器内。
  以是,在membership根目次下创立包容静态session信息的容器而且定名它为ou=SessionStateData。第二AUO供给器利用SessionStateData容器来存储数据。用MMC创立一个有SessionState的第二AUO供应器。它应当具有以上司性:
  ADSpath:computername:LDAPport/o=yourDirectory/ou=SessionStateData
 Schemapath:computername:LDAPport/o=yourDirectory/ou=Admin/cn=Schema/cn=SessionStateClass
  如今你已能够用AUO来存储session信息了。固然这看起来有点庞大,可是你所做的就是创立和例示一个存在于Membership目次局限内的工具:界说一个类,它具有代表用户session形态的属性(或成份)。每一个用户城市失掉这个类的一个例示(或工具)。以是如今我们让AUO入手下手事情。
  设置AUOsession形态
  如今第二AUO供给器已筹办好存储静态数据,如今必要设置一个属性的一个值。起首给哀求web页面的用户商定一个工具:
  SetobjUser=Server.CreateObject("Membership.UserObjects")
  仅仅经由过程援用你就能够存取任何静态属性。以是,要显现大众称号你要如许做:
  Response.Write"Yourlogin:"+objUser.cn
  要设置静态信息,必需确保工具实践存在。由于它是个静态工具,以是你不克不及主动假定它存在。
  IfNotIsArray(objUser("SessionState").objectClass)Then
  objUser("SessionState").objectClass=
  Array("SessionState","dynamicObject")
  EndIf
  然后设置一个存在工夫值。这个工夫已往后,工具就会停止并消散。在设置AUOSession工具的任何别的属性之前必需挪用SetInfo。
  objUser("SessionState").entryTTL=900specifiedinseconds
 objUser("SessionState").SetInfo
  最初,你能够设置值了。这里我设置一个界说为numItems的属性。注重这个属性必需存在于企图中,而且所赋的值必需切合企图中的数据范例。
  objUser("SessionState").numItems=3
 objUser("SessionState").SetInfo
  你能够试着用一个不存在的属性,大概赋一个毛病范例的值,看看你所失掉的毛病信息。
  会见AUOSession形态
  我把最复杂的例子留到了最初。会见属性的值与会见任何第二AUO供给器信息是一样的。指定用户对象、第二AUO供给器名、属性名。
  Response.WriteobjUser("SessionState").numItems
  分开你的书桌,守候工具停止的工夫到,然后再返来革新页面以证明工具的确是静态的。假如工具已停止了,就不克不及显现任何器材了。
  Session和AUO工具之间的区分
  你大概已注重到在利用AUO属性之前既要界说也要复制它们,我以为这就是相对Session工具的最年夜优胜的地方。它强制各个开辟职员事前举行更多的计划,为多团体员配合开辟的项目创立一个变量声明的会合地区,这比让Session变量分离在ASP文件遍地要有用很多。
  另有很多数据处置的大概性。可使用ADSI来会见存储Session形态的组,然后在成组的用户及他们的属性长进行各类显现处置,如哪些人在购置、他们作废了甚么、一天的甚么工夫他们买甚么器材等。
  结论
  以是不要成为你的乐成的就义品--机关你的ASP使用程序,使它具有伸缩性和容错才能。伸缩性和容错才能的关头一方面是保护用户session形态信息的战略。假如你正在利用站点服务器,那末ActiveX用户工具就是保护用户形态信息的很好的体例
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!
9#
发表于 2015-3-22 04:10:51 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-15 20:59:15 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
因胸联盟 该用户已被删除
7#
发表于 2015-3-8 02:50:29 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
小魔女 该用户已被删除
6#
发表于 2015-2-25 19:39:43 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
海妖 该用户已被删除
5#
发表于 2015-2-8 14:51:22 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
变相怪杰 该用户已被删除
地板
发表于 2015-2-2 22:21:10 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
再现理想 该用户已被删除
板凳
发表于 2015-1-25 14:02:58 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-19 05:55:23 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表