用ASP技术为你的站点加密

Author: 沈舟 Date: 2000年 第16期

  如果你建立一个论坛之类的需要用户登录注册的网站,以往实现很麻烦,有了ASP,你可以很轻松地达到这个目的。本文将向你介绍用ASP加密站点的一种方法,用户只能通过注册登录后才能进入。
  首先,你需要制作登录页面,在HTML中加入FORM,并设为自发送页:
  〈form name=″login″ action=″default.asp″ method=″post″ target=″-top″〉
  Action后接本页URL,这样即使用户登录错误,在本页即获提示,而无须再返回前一页登录。在表单中加入:
  〈input name=″name″ size=″10″maxlength=″10″ style=″HEIGHT: 21px; WIDTH: 101px″〉
  〈input name=″password″ type=″password″ size=″10″ maxlength=″10″〉
  完成HTML后,在页首填加程序代码如下:
  <& @ Langhage=VBScript %>
  <%
  Dim myDSN
  dim na,pass
  MyDSN=″DSN=HotFoxDB;uid=superuser;DATABASE=HotFoxDB;pwd=″    ′连接代码
  na=trim(request.form(″name″)    ′  取得用户提交的用户名
  pass=trim(request.form(″password″))  ′  取得用户提交的密码
  if  (instr(na,″ ′ ″)<>0 or instr(pass,″ ′ ″)<>0 then     ′  数据预处理,检测输入中是否有′符号
  Response.Redirect(″fail.htm″)  ′  如果有非法字符,转到登录失败页面
  end if
  mySQL=″select * form userprofile where name=′ ″ & na & ″ ′ and ′ ″ & ass & ″ ′ ″  ′  执行常规的SQL数据验证
  set  rstmp = Sever.CreateObject(″ADODB.Recordset″)
  rstmp.Open mySQL,myDSN,3
  if rstmp.recordcount<>1 then
     Response.Redirect(″fail.htm″)
  else
  session(″username″)=trim (rstmp.fields(″name″))     ′ 此项为数据库中用户名
  session(″userdpass″)=trim (rstmp.fields(″password″))   ′  此项为数据库中用户密码
  session(″userpower″)=trim (rstmp.fields(″power″))     ′  此项为数据库中用户权限[可选]
  rstmp.Close ( )
  set rstmp=nothing
  Response.Redirect(″Main.htm″)
  end if
   %>
  把下面一个的代码加入每个页面的开头
  <& @ Langhage=VBScript %>
  〈%if  session(″username″)=0 then  ′验证用户名是否为空
  Response.Redirect(″default.asp″)   ′若为空返回登录页面
  end if
  %>
  在这样处理之后,你的Web站点就有了安全登录的功能。即使别人知道了你的站点的地址,在不进行合法登录的情况下,也无法访问其他网页。