來源:互聯網
上載者:User
關鍵字
使用者
驗證
原創
實現
具體
詳細
檔案
訪問
user1
Apache
Win32下具體實現Apache的使用者驗證
相信大家採用的驗證方法很多種,而在Win32環境下如何設定Apache使用者驗證的介紹很少,手冊上介紹的也是Unix和linux環境下的配置,象我這樣在win32下苦苦摸索Apache的人應該不少,我根據自己的經驗介紹一下自己是如何在Win32環境下實現apache的使用者驗證功能的。
方法一:以單使用者方式實現某目錄只能由某個使用者或幾個使用者訪問。
假設Apache的web根目錄為 d:/home,對應URL為 http://localhost/
如欲使d:/home/test目錄只能由某使用者訪問,該目錄對應URL為http://localhost/test,訪問該URL時需要彈出驗證對話方塊。
d:/users目錄用來存放密碼檔案 user.passwd
1、製作使用者密碼檔案
在命令列方式先用Apache內建的工具htpasswd.exe產生一個密碼檔案叫user.passwd,-c參數表示建立檔案,無參數表示在該口令檔案中以添加方式增加一個使用者。
D:\apache\bin>htpasswd -bc d:/users/user.passwd user1 123456
這樣,就產生了d:/users/user.passwd 口令檔案,裡面有一行文字 user1:$apr1$4S3.....$.su.8AIrDEYMX7jKv2RT9/
成功增加了一個user1的使用者,如果想再添加其他使用者,就採用追加方式添加使用者:
D:\apache\bin>htpasswd -b d:/users/user.passwd user2 123456
D:\apache\bin>htpasswd -b d:/users/user.passwd user3 123456
好了,當添加完使用者,就可以著手實現使用者驗證了。
2、製作訪問驗證檔案 .htaccess
開啟記事本,輸入以下文字:
authtype basic
authname "www.home.net"
authuserfile d:/users/users.passwd
require user user1
然後另存新檔 .htaccess,儲存路徑為你想實現驗證的目錄:d:/home/test/下,注意檔案類型選"所有檔案",檔案名稱為".htaccess",否則就不會產生 .htaccess 檔案了。
到這裡,指定某個使用者驗證的設定就完成了,在瀏覽器中輸入驗證目錄所對應的地址 http://localhost/test/,會發現瀏覽器彈出一個對話方塊要求你輸入使用者名稱和口令,你就只能輸入使用者user1和密碼12345才能進去,輸入其他使用者如user2,user3是沒用的。
3、實現指定某幾個使用者對一個目錄的驗證
例如決定 http://localhost/test/ 能由user1和user3訪問,user2不能訪問,則編輯 d:/home/test/.htaccess 檔案,把最後的一句:
require user user1
改為:
require user user1 user3
如此就實現了 http://localhost/test/ 只能由user1和user2訪問
4、實現所有合法使用者對一個目錄的驗證
例如決定 http://localhost/test/ 能由 d:/users/user.passwd 檔案裡的所有使用者訪問,則編輯 d:/home/test/.htaccess 檔案,把最後的一句改為 :
require valid-user
就可以實現在 user.passwd 裡使用者都能訪問http://localhost/test/了,只要輸入的使用者名稱和密碼沒有錯誤。
方法二:採用群組使用者方式實現驗證
要實現其實也很簡單,在方法一中對 user.passwd 檔案裡的使用者進行分組,建立使用者組檔案,再在 .htaccess 檔案裡指定 authgroupfile 就可以了。假設 user.passwd 中已經添加了很多使用者 (user1,user2,user3,user4,...)
1、建立一個使用者組檔案 d:/users/user.group ,內容如下:
manager:user1 user3
game:user2 user4
download:user5 user6 user7
如此,user.group 檔案裡把 user1至user7這7個使用者分為了3個組:manager,game,download 。
2、實現某組使用者能訪問 http://localhost/test/
編輯 d:/home/test/.htaccess 檔案,內容如下:
authtype basic
authname "www.home.net"
authuserfile d:/users/users.passwd
authgroupfile d:/users/user.group
require group game
那麼,http://localhost/test/就只能由 game組裡的使用者 user2,user4 才能訪問了。
以上步驟,對於熟悉編程開發的同志來說,完全可以做個圖形介面程式來完成,就省事多了。
至此,Apache在Win32環境下的簡單驗證就實現了。看來和 Linux下的設定方法差不多,我卻走了不少彎路才摸索出來,慚愧慚愧啊。
實現Apache的驗證方法還有數種途徑,以上只是一方面而已。