輕鬆實現ASP中頁面限權訪問

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

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

  一、某一頁面只讓某些使用者瀏覽

  將這些客戶的資訊儲存在資料庫中,若能在資料庫中檢索到客戶輸入的姓名和密碼就允許訪問該頁面。

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〉

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.