谁可相欹 发表于 2015-1-16 23:22:03

ASP编程:用户形态保护

因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。那甚么是用户形态保护?
作者:青苹果事情室本文点击次数:277


  本文是编译稿件,原文出处:http://www.asptoday.com/articles/19990820.htm

  假如你未几加当心,十分类似的情形会产生在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形态
作者:青苹果事情室本文点击次数:277


  如今第二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用户工具就是保护用户形态信息的很好的体例。

</p>当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题

再现理想 发表于 2015-1-19 16:11:48

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

因胸联盟 发表于 2015-1-24 13:45:54

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

若天明 发表于 2015-1-24 15:08:56

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

变相怪杰 发表于 2015-1-29 18:07:28

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

兰色精灵 发表于 2015-2-6 03:11:57

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

活着的死人 发表于 2015-2-15 07:44:25

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

谁可相欹 发表于 2015-3-11 18:50:21

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

飘灵儿 发表于 2015-3-19 07:52:04

下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...

灵魂腐蚀 发表于 2015-3-27 15:08:44

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
页: [1]
查看完整版本: ASP编程:用户形态保护