飘灵儿 发表于 2015-1-16 22:13:00

ASP教程之在ASP使用中考证用户身份

优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件交互式的Web使用比那些只供应静态Web页面的站点请求思索更多的平安成绩。注册与暗码是回护敏感信息最为经常使用的手腕。因为ASP没有间接供应考证用户身份的办法,因而,用户必需实行登录历程以便使用体系保留和提取用户相干信息。
  1、示例站点概貌
  本文经由过程一个示例站点ASPSecurity申明ASP使用中注册与暗码回护的一样平常完成历程。我们把用户信息保留在Web服务器上的一个Access97数据库中,DSN称号为
ASPSecurity。独一的数据库表具有以下字段:Signon(文本,注册的用户名),Password(文本,暗码),LastOn(文本,用户最初一次会见工夫),TimedOut
(是/否,是不是因为超时而被体系停止会话)。

  体系次要包含以下几个页面:

  default.htm――重定向扫瞄器到signon.asp页面。

  signon.asp――供应登录体系界面。

  signedOn.asp――乐成登录体系以后显现的页面。

  register.asp――新用户注册页面。

  缺省页面default.htm只用于将扫瞄重视定向到signon.asp登录页面,这由上面这个META标志完成:

  <METAHTTP-EQUIV="REFRESH"CONTENT="1;URL=signon.asp">

  signedOn页面是全部站点独一受回护的页面,必需经由身份考证才干会见。
在ASP使用中考证用户身份(2)
录进职员:asp  公布工夫:2005-7-3019:57:17  (扫瞄37次)


2、初始化和用户输出正当性反省
  当一个ASP使用启动的时分,IIS就会寻觅一个global.asa文件。假如该文件存在,就入手下手实行Application_onStart。在这里能够初始化使用级的变量和常量。上面的代码在Application_OnStart中初始化一个数组来跟踪恣意时候登录体系的一切用户:

SubApplication_OnStart
Application("Users")=Array()
EndSub

  在实行Application_OnStart以后,ASP引擎创立一个Session工具并初始化
SessionID,然后触发Session_OnStart事务。在这里能够初始化会话级(和特定用户相干的)变量和常量:

subSession_OnStart
Session.Timeout=1
数据库DSN
Session("ConnectionString")="ASPSecurity"
Session("ConnectionTimeout")=15
读/写体例
Session("Mode")=3
endsub

  思索到用户的扫瞄器大概不撑持Cookies或封闭了Cookies功效,因而必需在第一个ASP页面中反省Cookies的撑持情形并把了局保留在一个Session变量中。别的,当用户在登录页面中单击“登录”按钮,还应当反省用户输出的正当性,以下面的代码所示,个中ASPSecurity.inc供应一些公用函数(如signUserOn用于考证用户身份):

<%@Language=VBScript%>
<%optionexplicit%>
<%Response.buffer=true%>
<!--#INCLUDEFILE="ASPSecurity.inc"-->
<%
dimaSignon
dimaPassword
dimdataValidated
dataValidated=false
反省扫瞄器是不是撑持Cookies
Session("SupportsCookies")=(instr(1,Request.ServerVariables
("HTTP_COOKIE"),"ASPSESSIONID",vbTextCompare)>0)
ifRequest("Action")="登录"then
aSignon=lcase(trim(Request.Form("Signon")))
aPassword=lcase(trim(Request.Form("Password")))
iflen(aSignon)=0then
Session("msg")="请输出用户名字."
endif
iflen(aPassword)=0then
Session("msg")="请输出暗码."
else
dataValidated=true
endif
ifdataValidatedthen
ifsignUserOn(aSignon,aPassword)then
用户身份被证明,同意进进受回护页面
Response.Redirect"signedOn.asp?ID="&Session("ID")
endif
endif
elseifRequest("Action")="注册"then
Response.Redirect"register.asp"
endif
%>


  关于注册页面,除要反省用户是不是完全地输出一切内容以外,还应当反省两次输出暗码是不是不异、用户名字是不是与数据库中已有纪录抵触等。完成代码请拜见本文所附的ZIP文件。

  因为用户每次启动扫瞄器毗连到服务器时SessionID都是分歧的,以是不克不及间接用它来联系关系用户与存储在数据库中的相干信息,但SessionID能够用光降时地标识从数据库或文件提取的用户信息。关于那些不撑持Cookies的扫瞄器,能够用别的的办法来创立独一ID,以下面的getID利用的是随机函数:

functiongetID()dimnumbers
dimletters
dimI
dimID
Randomize
numbers="0123456789"
letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
forI=1to10
ifImod20then
ID=ID&mid(letters,Int((26*Rnd)+1),1)
else
ID=ID&mid(numbers,Int((10*Rnd)+1),1)
endif
next
getID=ID
endfunction帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。

第二个灵魂 发表于 2015-1-24 12:40:05

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

小妖女 发表于 2015-2-1 15:00:04

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

因胸联盟 发表于 2015-2-7 07:01:46

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

海妖 发表于 2015-2-20 23:55:01

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

若天明 发表于 2015-3-6 19:23:29

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

飘灵儿 发表于 2015-3-13 06:35:18

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

不帅 发表于 2015-3-20 15:19:00

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
页: [1]
查看完整版本: ASP教程之在ASP使用中考证用户身份