新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 计算机科学论坛计算机技术与应用『 Dot NET,C#,ASP,VB 』 → [转帖]利用ASP给主页加密 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3432 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转帖]利用ASP给主页加密 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     愚者 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      头衔:愚者
      等级:计算机学士学位
      文章:259
      积分:2375
      门派:XML.ORG.CN
      注册:2004/10/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给愚者发送一个短消息 把愚者加入好友 查看愚者的个人资料 搜索愚者在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看愚者的博客楼主
    发贴心情 [转帖]利用ASP给主页加密

    Active server pages (动态服务器主页,简称ASP),能够让我们产生动态的、互动性、高效能的WEB应用程序,使我们能用非常简单的方法通过网页查询和修改数据库,现在已被越来越多的WEB设计人员所接受。但是我们在开发中往往遇到这样一种情况,即希望让某些页面受到保护,只让经过受权的用户访问,对一般用户则拒绝访问。

      下面我就向大家介绍如何用ASP来创建一个简单的,但是却相当有效的登录方案,从而保证WEB应用程序的安全性。只要你按照以下的步骤做,你将会拥有一个安全的用户登录系统。

      步骤1:创建一个用户表

      首先我们要创建一个记录受权用户信息的表格。在这个例子中,我用ACCESS97创建了一个名叫userinfo.mdb的数据库,它包含了受权用户的信息,用户有两个字段——用户名和用户密码,其中用户名为主关键字。(之所以选用ACCESS,是因为它广为人所知,使用方便,并且适用于大多数的中小型方案。)

      步骤2:设置缺省的验证状态

      我们要在global.asa文件中完成这些设置,为缺省的“not authenticated”状态设置一个对话变量。这样做后,当用户想访问那些受到保护的页面时,只有你检查过他们的身份证明后,他们才可以访问。缺省状态的设置确保了每个人在进入网页之前都经过了身份验证。

      在global.asa文件中,Session_OnStart事件里,填写以下代码

      在global.asa文件中,Session_OnStart事件里,填写以下代码

    < SCRIPT LANGUAGE=VBScript RUNAT=Server>

    SUB Session_OnStart

    ……

    ……

    ’ This is the default authentication status

    Session(“Authenticated”) = 0

    END SUB

    < /SCRIPT>

      切记验证身份状态的设置是一件非常重要的事物,请不要忘记。
    步骤3:创建一个用户登录页

      这是一个ASP网页,里面是HTML的内容。我们把这一页取名叫login.asp,为了方便起见,下面给出了示例代码:

    < HTML>

    < BODY BGCOLOR=FFFFFF>

    < FORM ACTION=“verify.asp” METHOD=POST>

    Name:

    < INPUT TYPE=TEXT SIZE=20 NAME=USERNAME>

    Password:

    < INPUT TYPE=PASSWORD SIZE=20 NAME=USERPASSWORD>

    < INPUT TYPE=SUBMIT VALUE=“Login Now”>

    < /BODY>

    < /HTML>

      它包含了1个有2个输入框的表格。这些输入框用于收集用户的用户名和用户密码。收集到的信息我们用POST方式交给verify.asp来处理,以便我们来验证这个用户有没有经过受权。

      步骤4:为这个数据库创建系统型ODBC数据源(DSN)

      为了访问userinfo.mdb这个数据库,我们需要创建系统型ODBC数据源(DSN)。如果你非常熟悉ASP的话,你可以选择你自己的数据源(DSN)项目。要创建系统型ODBC数据源(DSN),你需要做以下步骤:

      *打开你的电脑中的控制面板(在Windows95/NT中的开始..设置菜单里)

      *选择“32位ODBC”

      *选择“System DSN”

      *选择“添加”。再选择“Microsoft Access Database Driver”,单击“完成”

      *给数据源(DSN)取个名字,在“数据库”设定中取名为“LoginDSN”,单击“选择”后指出userinfo.mdb数据库所在的确切路径。

      *单击确定按钮

      通过这个步骤,在你的电脑里创建了一个名为“LoginDSN”的系统型ODBC数据源(DSN),并指出了所选用userinfo.mdb数据库的确切位置。

      步骤5:创建验证页

      这就是我们在步骤3中看到的verify.asp页。在这一页中,我们将验证用户是否有效。我们从login.asp页获得了用户的信息(还记得那些输入框的表格吗?)
    我们的目的是:

      *验证用户是否经过授权并根据结果设置相应的验证状态

      *如果用户是经过授权的,验证状态置1

      *如果用户是没有授权的,验证状态置0

    下面显示的是verify.asp页的代码,你可以根据实际情况作一些相应的修改。

    < %

    ’ Create a command object. This object serves to run our queries

    Set Cm = Server.CreateObject(“ADODB.Command”)

    ’ Specify the system DSN path

    Cm.ActiveConnection =“LoginDSN”

    ’ Now it’s time for the query. We need to check the user information

    ’ against the table tUsers

    Cm.CommandText=“SELECT * FROM tUsers WHERE ”& _

    “UserName=’”& Request.Form(“UserName”) &“’ AND ”& _

    “UserPassword=’” & Request.Form(“UserPassword”) & “’”

    ’ Set the query type. 1 means it is a SQL statement

    Cm.CommandType = 1

    ’ Retrieve the results in a recordset object

    Set Rs = Cm.Execute

    ’ We now check if the user is valid. If user is valid, the recordset MUST

    ’ haverecord. Otherwise it is empty. If user exists, we set authentication

    ’ status to 1 and send the user to appropriate page, say welcome.asp.

    ’ Else send the user back to login.asp

    If Rs.EOF Then

    Session(“Authenticated”) = 0

    Response.Redirect (“login.asp”)

    Else

    Session(“Authenticated”) = 1

    Response.Redirect (“welcome.asp”)

    End If

    % >
    步骤6:检查验证状态

      这是我们系统中的一个重要的部分。我们要在每个受到保护的页面上,检查用户的验证状态。这个做起来很简单。只要检查用户的验证状态是否为1即可,如果不是1则把用户重新送到login.asp页。示例代码如下

    < %

    If Session(“Authenticated”) = 0 Then

    Response.Redirect (“Login.asp”)

    End If

    % >

      你还可以用另一种方法。把上面的代码拷贝到一个叫check.inc的文件中,再把下面这行代码包含到需要保护的页面的头部。

      如果你有很多页面需要保护,你只需把这行代码写到每一个需要保护的网页的头部即可。

      上述6个步骤将帮助你创建一个简单的用户登录系统。但请记住这个系统只是保护一个虚拟的目录,而不是整个的网站。你需要为每个你想要保护的虚拟路径创建一个。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    http://photo.cnitv.com/PicLib/Pictures/Pi_21377.gif
    人生的意义不在马到成功,而在于不断求索,奋力求成。每一件有意义的事都需要不得我们以坚强的信念去完成,这样,我们的生活才会更加充实,意志更加坚强。
    人与人之间虽然相隔很近,但是心却离得很远!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/19 19:51:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/30 8:05:34

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    5,314.453ms