明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

我來寫個詳細的: Win32下具體完成Apache的用戶驗證(原創(chuàng))

[摘要]Win32下具體實現(xiàn)Apache的用戶驗證相信大家采用的驗證方法很多種,而在Win32環(huán)境下如何設(shè)置Apache用戶驗證的介紹很少,手冊上介紹的也是Unix和linux環(huán)境下的配置,象我這樣在win...
Win32下具體實現(xiàn)Apache的用戶驗證
相信大家采用的驗證方法很多種,而在Win32環(huán)境下如何設(shè)置Apache用戶驗證的介紹很少,手冊上介紹的也是Unix和linux環(huán)境下的配置,象我這樣在win32下苦苦摸索Apache的人應(yīng)該不少,我根據(jù)自己的經(jīng)驗介紹一下自己是如何在Win32環(huán)境下實現(xiàn)apache的用戶驗證功能的。

方法一:以單用戶方式實現(xiàn)某目錄只能由某個用戶或幾個用戶訪問。
假設(shè)Apache的web根目錄為 d:/home,對應(yīng)URL為 http://localhost/
如欲使d:/home/test目錄只能由某用戶訪問,該目錄對應(yīng)URL為http://localhost/test,訪問該URL時需要彈出驗證對話框。
d:/users目錄用來存放密碼文件 user.passwd

1、制作用戶密碼文件
在命令行方式先用Apache自帶的工具htpasswd.exe生成一個密碼文件叫user.passwd,-c參數(shù)表示新建文件,無參數(shù)表示在該口令文件中以添加方式增加一個用戶。
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

好了,當(dāng)添加完用戶,就可以著手實現(xiàn)用戶驗證了。

2、制作訪問驗證文件 .htaccess
打開記事本,輸入以下文字:

authtype basic
authname "www.home.net"
authuserfile d:/users/users.passwd
require user user1

然后另存為 .htaccess,保存路徑為你想實現(xiàn)驗證的目錄:d:/home/test/下,注意保存類型選"所有文件",文件名為".htaccess",否則就不會生成 .htaccess 文件了。

到這里,指定某個用戶驗證的設(shè)置就完成了,在瀏覽器中輸入驗證目錄所對應(yīng)的地址 http://localhost/test/,會發(fā)現(xiàn)瀏覽器彈出一個對話框要求你輸入用戶名和口令,你就只能輸入用戶user1和密碼12345才能進去,輸入其他用戶如user2,user3是沒用的。

3、實現(xiàn)指定某幾個用戶對一個目錄的驗證
例如決定 http://localhost/test/ 能由user1和user3訪問,user2不能訪問,則編輯 d:/home/test/.htaccess 文件,把最后的一句:
require user user1
改為:
require user user1 user3
如此就實現(xiàn)了 http://localhost/test/ 只能由user1和user2訪問

4、實現(xiàn)所有合法用戶對一個目錄的驗證
例如決定 http://localhost/test/ 能由 d:/users/user.passwd 文件里的所有用戶訪問,則編輯 d:/home/test/.htaccess 文件,把最后的一句改為 :

require valid-user

就可以實現(xiàn)在 user.passwd 里用戶都能訪問http://localhost/test/了,只要輸入的用戶名和密碼沒有錯誤。

方法二:采用群組用戶方式實現(xiàn)驗證
要實現(xiàn)其實也很簡單,在方法一中對 user.passwd 文件里的用戶進行分組,建立用戶組文件,再在 .htaccess 文件里指定 authgroupfile 就可以了。假設(shè) user.passwd 中已經(jīng)添加了很多用戶 (user1,user2,user3,user4,...)
1、建立一個用戶組文件 d:/users/user.group ,內(nèi)容如下:

manager:user1 user3
game:user2 user4
download:user5 user6 user7

如此,user.group 文件里把 user1至user7這7個用戶分為了3個組:manager,game,download 。

2、實現(xiàn)某組用戶能訪問 http://localhost/test/
編輯 d:/home/test/.htaccess 文件,內(nèi)容如下:

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 才能訪問了。

以上步驟,對于熟悉編程開發(fā)的同志來說,完全可以做個圖形界面程序來完成,就省事多了。
至此,Apache在Win32環(huán)境下的簡單驗證就實現(xiàn)了?磥砗 Linux下的設(shè)置方法差不多,我卻走了不少彎路才摸索出來,慚愧慚愧啊。
實現(xiàn)Apache的驗證方法還有數(shù)種途徑,以上只是一方面而已。