【摘 要】當上網者要瀏覽這個目錄的網頁時,瀏覽器就會顯示“請輸入使用者名稱和密碼”的視窗,要求使用者輸入使用者名稱和密碼,因為IIS驗證的方法是與NT伺服器結合在一起,只要是NT伺服器的使用者,就是IIS的使用者,因此這裡輸入的使用者名稱和密碼是已經在 NT伺服器中建立的使用者及對應的密碼。用這種方法我們可以輕鬆實現對Sample目錄網頁的密碼驗證。
我們在訪問一些網站時,經常會碰到需要輸入“使用者名稱和密碼”的網頁,使用者名稱和密碼的驗證給網站的安全帶來保障,一般網頁的安全設定以目錄為單位,通過設定目錄的屬性可以保證網站的安全,這樣的網頁是如何製作出來的呢。
下面筆者將介紹在網頁設計中密碼驗證的兩種方法,希望能給網頁設計者有所協助。
一、使用IIS所提供的工具
如果設計者是管理員級的使用者,我們可以用一種簡單的方法來實現密碼驗證。假設你安裝的Web伺服器是IIS,我們可以通過IIS所提供的 “Internet服務管理員”進行目錄安全設定。假設我們把/Sample設定成安全目錄,首先啟動“Internet安全服務管理員”,開啟“預設的網站”,我們選取“Home”目錄。接著選取“編輯屬性”,在出現的“Sample屬性”視窗中,選取“目錄安全設定”選項,然後按下“匿名存取及驗證控制”中的編輯按鈕,將“允許匿名”按鈕取消,選取“基本”。接下來當上網者要瀏覽這個目錄的網頁時,瀏覽器就會顯示“請輸入使用者名稱和密碼”的視窗,要求使用者輸入使用者名稱和密碼,因為IIS驗證的方法是與NT伺服器結合在一起,只要是NT伺服器的使用者,就是IIS的使用者,因此這裡輸入的使用者名稱和密碼是已經在 NT伺服器中建立的使用者及對應的密碼。用這種方法我們可以輕鬆實現對Sample目錄網頁的密碼驗證。
二、使用ASP程式
利用程式來進行密碼驗證,這種方法較為通用,它對Web伺服器沒有具體要求,它是藉助資料庫及ASP程式進行設計,來實現一種通用網頁加密。
首先,我們利用Microsoft Access建立“使用者名稱稱及密碼”的資料表,假設將這個表取名為User,資料庫名為Usercheck.mdb,資料表的結構如下:
欄位說明 欄位名稱 資料類型 資料長度
使用者名稱稱 ID 文本 15
密碼 PWD 文本 15
驗證程式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
%>
<html>
<head> <title></title> </head>
<body BGCOLOR="#FFFFFF">
<h2 ALIGN="CENTER"><%=Head%></h2>
<hr WIDTH="100%">
<form Action="<%=Request.ServerVariables("PATH_INFO")%>" Method="POST">
<table BORDER="1" CELLSPACING="0">
<tr>
<td ALIGN="RIGHT">使用者名稱稱:</td>
<td><input Type="Text" Name="ID" Size="12" Value="<%=ID%>"></td>
</tr>
<tr> <td ALIGN="RIGHT">密碼: </td>
<td><input Type="Password" Name="Pwd" Size="12" Value="<%=Pwd%>"></td> </tr>
</table>
<p><input Type="Submit" Value=" 確定 "> </p> </form>
<hr WIDTH="100%" align="center">
</body> </html>
<%Response.End
End If %>
這個驗證合法性的頁面具有通用性,只要在需要加密網頁的最前面加上如下程式:
<! --#i nclude file="pass.asp"-->
即可實現對任意網頁進行加密的功能了。