程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP訪問權限設置技術

ASP訪問權限設置技術

編輯:關於ASP編程

       在設計網頁時,經常遇到某些頁面需限權訪問的情況。比如,一個公司的某些產品只讓某一或某些供應商或客戶浏覽。那麼,我們如何實現這一功能呢?本文,筆者將向讀者介紹幾種限制客戶訪問權限的方法。

      通常,我們在設計過程中會面臨三種情況:某一頁面只讓某一用戶浏覽、某一頁面只讓某些用戶浏覽和某些頁面只讓某些用戶浏覽。第一種情況很簡單,筆者不再敘述,下文將詳細介紹後兩種情況的設計方法。

      一、某一頁面只讓某些用戶浏覽

      將這些客戶的信息保存在數據庫中,若能在數據庫中檢索到客戶輸入的姓名和密碼就允許訪問該頁面。

      Protect.asp文件 ′需限權訪問的頁面

      〈html〉〈head〉〈title〉賽迪主頁〈/title〉〈/head〉〈body bgcolor="#00FFFF"〉

      ′此處可輸入該頁面的其它內容

      〈form action="Protect.asp" method="post"〉

      請輸入姓名:

      〈input type="text" name="text"〉

      請輸入密碼:〈input type="password" size="20" name="password"〉

      〈input type="submit" name="B1" value="查詢"〉〈/p〉〈/form〉

      〈%set conn=server.createobject("adodb.connection")

      conn.open "asptest"

      ′asptest是存放客戶信息的表單permission所在的數據庫的名字

      sql1="select  from permission where xm='

      "&&request.form("text") && "' and mima='"&&request.form("password")&&"'"

      set rs=conn.execute(sql1)%〉

      ′如果數據庫中存在客戶輸入的姓名和密碼,就顯示頁面product.asp的超級鏈接

      〈% if not rs.eof then%〉〈a href="product.asp"〉本公司的產品〈/a〉

      〈%end if%〉〈/body〉〈/html〉

      二、某些頁面只讓某些用戶浏覽

      我們可以設計一登錄頁面register.asp,如果客戶沒有登錄,在進入每個需限權訪問的頁面時強制客戶先訪問頁面register.asp實現登錄。成功登錄之後自動返回到剛才要訪問的頁面。我們可用cookies和session兩種方法來實現。

      1.用cookies實現

      如果客戶已經登錄過,就把登錄的信息記錄在客戶端的cookies中,之後客戶就可直接浏覽其它限權訪問的頁面。

      register.asp

      〈% if request.form("b1")="提交" then

      set conn=server.createobject("adodb.connection")

      conn.open "asptest"

      sql1="select * from permission where xm='

      "&&request.form("name") &&"' and mima='"&&request.form("password")&&"'"

      set rs=conn.execute(sql1)

      if not rs.eof then

      response.cookies("register")="true"

      rs.close

      conn.close

      end if

      ′若數據庫中存在該用戶的信息,就記錄該用戶成功登錄的標記到cookies中

      end if%〉

      〈html〉〈head〉〈/head〉

      〈body bgcolor="#c0c0c0" 〉

      〈p align="center"〉〈big〉〈big〉〈big〉親愛的客戶,請您登錄!

      〈/big〉〈/big〉〈/big〉〈/p〉〈hr〉

      〈form action="register.asp" method="post" name="form1"〉

      〈div align="center"〉〈p〉姓名:

      〈input name="name" size="13"〉〈/p〉

      〈p〉密碼:〈input name="password"

      size="13"type="password"〉〈/p〉〈/div〉

      〈div align="right"〉〈input type="submit" name="b1" value="提交" 〉

      〈/div〉〈/form〉〈/body〉〈/html〉

      Protect.asp文件 ′需限權訪問的頁面

      〈%if request.cookies("register")〈〉"true" then

      response.redirect "register.asp"

      end if%〉

      ′若客戶未登錄,則強制客戶登錄

      〈html〉〈head〉〈/head〉

      〈body bgcolor="#00FFFF"〉

      ′此處是需保護的頁面內容

      〈/body〉〈/html〉

      2.用session實現

      session是用戶級的全局變量, 我們將客戶成功登錄的信息記錄到session中後,用戶就可直接浏覽其它限權訪問的頁面了。

      global.asp

      〈script language=vbscript runat=server〉

      sub Session_onstart

      session("register")="false"

      ′記錄客戶成功登錄的信息

      session("lognumber")=0

      ′記錄客戶嘗試登錄的次數,最多允許嘗試三次

      session("prescript")=""

      ′記錄客戶要訪問的頁面,以便登錄後返回該頁

      end sub

      〈/script〉

      register.asp

      〈% if request.form("b1")="提交" then

      set

      conn=server.createobject("adodb.connection")

      conn.open "asptest"

      sql1="select * from permission where xm='"

      &&request.form("name") &&"'

      and mima='"&&request.form("password")&&"'"

      set rs=conn.execute(sql1)

      if not rs.eof then

      session("register")="true"

      ′若數據庫中存在該用戶的信息,就記錄該用戶成功登錄的標記到register變量中

      rs.close

      conn.close

      response.redirect session("prescript")

      ′成功登錄後自動返回剛才要訪問的頁面

      end if

      if session("lognumber")〈3 then

      session("lognumber")=

      session("lognumber")+1

      response.redirect "register.asp"

      else

      response.redirect "sorry.asp"

      end if

      ′允許嘗試登錄三次,若均未成功,則禁止訪問並同時顯示頁面sorry.asp

      end if%〉

      〈html〉〈head〉〈/head〉

      〈body bgcolor="#c0c0c0" 〉

      〈p align="center"〉〈big〉〈big〉

      〈marquee align="middle"

      behavior="alternate" 〉歡迎您的光臨,請您先登錄!〈/marquee〉〈br〉

      〈%if session("lognumber")〉0 then%〉

      輸入有誤!請重新輸入姓名和密碼!

      〈% end if%〉

      〈/big〉〈/big〉〈/p〉〈hr〉

      〈form action="register.asp" method="post" name="form1"〉

      〈div align="center"〉〈p〉姓名:

      〈input name="name" size="13"〉〈/p〉

      〈p〉密碼:〈input name="password"

      size="13"type="password"〉〈/p〉〈/div〉

      〈div align="right"〉〈input type="submit" name="b1" value="提交" 〉

      〈/div〉〈/form〉〈/body〉〈/html〉

      Protect.asp文件   ′需限權訪問的頁面

      〈% if session("register")〈 〉"true" then

      session("prescript")=

      request.servervariables("script_name")

      response.redirect "register.asp"

      end if%〉

      ′記錄該頁面的路徑到prescript變量中並強制客戶登錄

      〈html〉〈head〉

      〈meta http-equiv="Content-Type"

      content="text/html; charset=gb_2312-80"〉〈/head〉

      〈body bgcolor="#00FFFF"〉

      ′此處可輸入該頁面其它內容的腳本

      〈/body〉〈/html〉

      以上幾種方法,設計者可以根據系統的需要進行靈活運用

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved