china.com
主页
新闻
体育
游戏
文化
教育
健康
财经
科技
旅游
军事
娱乐
商贸
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  


让用户一访问就转向指定界面

2000-08-15 17:15:59

  一个网站有许多页面,如果用户知道某个页面的链接,可以在浏览器中直接输入URL访问它。但这在一个要求有安全性的站点上是不允许的。我们要求用户必须登录以后才能访问各级页面,有时也确实希望用户总是先看到站点的主页。这两种要求可以通过在ASP的GLOBAL.ASA中对SESSION对象编程来实现。

  1.用户必须从主页开始浏览

  如果仅希望用户每次上站都先访问站点主页,可以在Session的SESSION_ONSTART事件中加入RESPONSE.REDIRECT “URL"来实现。例如在GLOBAL.ASA中有如下代码:

  Sub Session—OnStart

  Response.Redirect ″netdoctor.yeah.net″

  End Sub

  由于用户在访问站点时,一连接就会激发Session的OnStart事件,所以不管用户在浏览器中输入的是本站点上的何URL,都会由于OnStart事件中重定向命令的作用而转向指定页面。

  2.必须是经过验证的用户才能浏览

  对于有安全性要求的站点,如果是Intranet用户,可以把验证与NT的用户验证结合起来,只要给指定目录设定NTFS用户权限,用户访问时就会自动弹出验证窗口。这种验证不需要使用ASP编程实现。

  实际情况是,我们不会把大量的Internet用户加入域用户中,一般是用一个数据库来管理用户名和口令,由ASP程序把从Web页面上取得的用户名和口令到库中进行查找验证。如果一个用户知道站点的目录结构,有可能直接输入某个页面的URL,从而避过登录验证界面。这样,登录安全形同虚设。

  如前所述,用户与站点一连接,就会引发一个Session—OnStart事件,所以我们可以在这里强制它转向登录页面。GLOBAL.ASA中的代码如下:

  Sub Session—OnStart

  Response.Redirect ″login.asp″

  End Sub

  3.辨析说明

  朋友们可以注意到,以上两段代码实际上是一样的。但是,对于2中的情况,虽然一访问就转向了登录页面,可是此时Session的OnStart事件已经结束,如果再输入指定的URL,就可以避过安全检测了。

  我现在的解决方法是在每个ASP页面前加上下面一段代码,来实现上面的功能:

  〈%

   if session(″userid″)=″″ then

     response.redirect ″login.asp″

   end if

  %〉

  其中,Session变量是在用户通过登录后建立的一个在整个过程中都生效的变量,如在Login.asp中,使用以下代码:

  if checkpwdok() then

   session(″userid″)=request(″userid″)

  end if

  不过这种办法对站点的每个页面都要如此处理。对ASP页面这么办还可以,对HTML页面文件就无能为力了。所以,本文在此抛砖引玉,希望能有朋友提出更好的办法。

  摘自《赛迪网》 张猛/文

404 Not Found

404 Not Found


nginx


科技检索


中华网推荐

  • 1000名医生在线咨询

  • 中国足球队官方网站

  • 鸦片玫瑰(新版)

  • 精选股票天地

  • 闪光的flash教程

  • 中华网汽车世界

  • 为你的爱情出谋划策

  • 网文精选——野百合集

  • 世界文化遗产在中国

  • 历届香港小姐风姿集



  •  


    网络教室编辑信箱
    版权声明 | 本站检索 | 联系方法 | 刊登广告 | 使用说明 | 关于中华网 | 豁免条款

    版权所有 中华网