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的驗證方法還有數種途徑,以上只是一方面而已。
|