下面筆者將介紹在網(wǎng)頁設(shè)計中密碼驗(yàn)證的兩種方法,希望能給網(wǎng)頁設(shè)計者有所幫助。
一、使用IIS所提供的工具
如果設(shè)計者是管理員級的用戶,我們可以用一種簡單的方法來實(shí)現(xiàn)密碼驗(yàn)證。假設(shè)你安裝的Web服務(wù)器是IIS,我們可以通過IIS所提供的“Internet服務(wù)管理員”進(jìn)行目錄安全設(shè)置。假設(shè)我們把/Sample設(shè)置成安全目錄,首先啟動“Internet安全服務(wù)管理員”,打開“默認(rèn)的站點(diǎn)”,我們選取“Home”目錄。接著選取“編輯屬性”,在出現(xiàn)的“Sample屬性”窗口中,選取“目錄安全設(shè)置”選項(xiàng),然后按下“匿名存取及驗(yàn)證控制”中的編輯按鈕,將“允許匿名”按鈕取消,選取“基本”。接下來當(dāng)上網(wǎng)者要瀏覽這個目錄的網(wǎng)頁時,瀏覽器就會顯示“請輸入用戶名和密碼”的窗口,要求用戶輸入用戶名和密碼,因?yàn)镮IS驗(yàn)證的方法是與NT服務(wù)器結(jié)合在一起,只要是NT服務(wù)器的用戶,就是IIS的用戶,因此這里輸入的用戶名和密碼是已經(jīng)在NT服務(wù)器中建立的用戶及對應(yīng)的密碼。用這種方法我們可以輕松實(shí)現(xiàn)對Sample目錄網(wǎng)頁的密碼驗(yàn)證。
二、使用ASP程序
利用程序來進(jìn)行密碼驗(yàn)證,這種方法較為通用,它對Web服務(wù)器沒有具體要求,它是借助數(shù)據(jù)庫及ASP程序進(jìn)行設(shè)計,來實(shí)現(xiàn)一種通用網(wǎng)頁加密。
首先,我們利用Microsoft Access 建立“用戶名稱及密碼”的數(shù)據(jù)表,假設(shè)將這個表取名為User,數(shù)據(jù)庫名為Usercheck.mdb,數(shù)據(jù)表的結(jié)構(gòu)如下:
字段說明 字段名稱 數(shù)據(jù)類型 數(shù)據(jù)長度
用戶名稱 ID 文本 15
密碼 PWD 文本 15
驗(yàn)證程序PASS.ASP的源代碼如下:
<%
Function Check( ID, Pwd )
Dim conn, par, rs
Set conn = Server.CreateObject("ADODB.Connection")
par = "driver={Microsoft Access Driver (*.mdb)} "
conn.Open par & ";dbq=" && Server.MapPath("usercheck.mdb ")
sql = "Select From users Where ID='" && ID && "' And Pwd = '" && Pwd &&"'"
Set rs = conn.Execute( sql )
If rs.EOF Then
Check= False
Else
Check= True
End If
End Function
%>
<%
If IsEmpty(Session("Passed")) Then Session("Passed") = False
Head = "請輸入用戶名和密碼"
ID = Request("ID")
Pwd = Request("Pwd")
If ID = "" Or Pwd = "" Then
Head = "請輸入用戶名和密碼"
Else If Not Check( ID, Pwd ) Then
Head = "用戶名稱或密碼有錯"
Else
Session("Passed") = True
End If
If Not Session("Passed") Then
%>
<%=Head%>
<%Response.End
End If %>
這個驗(yàn)證合法性的頁面具有通用性,只要在需要加密網(wǎng)頁的最前面加上如下程序:
即可實(shí)現(xiàn)對任意網(wǎng)頁進(jìn)行加密的功能了。