2011-06-06 27 views
2

我想使用Apache和PHP實現動態驗證過程。 我現在的項目是分成兩個部分:通過PHP動態Apache驗證

  1. 我有一個經典的LAMP項目的運行,即用戶已經有一個登錄/密碼,我用它來授予他們訪問我的系統的不同部分。

  2. 某些文檔(文本,Office,...)託管在單獨的DAV服務器(相同的服務器但不同的域)上,用戶可以使用Dav直接從Office程序(Word,Excel ...)編輯它們/ ActiveX/IE組合。

我想,讓我的第一個系統上註冊的用戶使用基於其當前的右邊(存儲在數據庫中)

例如不同的DAV方法,X先生可以訪問文件A與PUT/GET方法,但沒有訪問文檔B.

我通常使用PHP身份驗證來解決這類問題,但據我所知,我的身份驗證發生在Microsoft Office應用程序中。 辦公室直接與Apache「討論」,所以我當然需要重寫.htaccess文件。 我有太多的用戶手動存儲在.htaccess(〜10K)和DAV服務器上的許多文件(〜1K)。此外,用戶權利可能隨時間而改變。

有沒有辦法生成動態htaccess文件?或者添加一些處理程序來「告訴」Apache允許或禁止某些文件的用戶/密碼?

回答

2

所有你需要的是http://modauthmysql.sourceforge.net/

您可以通過.htaccess進行配置Apache來對MySQL數據庫進行身份驗證。 當然,您可以在其中使用現有的Mysql表格。

這是我的工作配置:

<Directory "/u05/data"> 
      AllowOverride All 

      Order Allow,Deny 
      Allow from All 
      Deny from None 

      AddType application/octet-stream .rar 
      AuthName "Download zone - secured" 
      AuthType Basic 

      AuthMYSQLEnable on 
      AuthMySQLUser http_auth 
      AuthMySQLPassword http_auth 
      AuthMySQLDB mydatabase 
      AuthMySQLUserTable users 
      AuthMySQLNameField user_name 
      AuthMySQLPasswordField user_password 
      AuthMySQLPwEncryption crypt 

      require valid-user 
    </Directory> 
+0

我忘記了這個問題,並將此功能置於括號中。但據我看,你的答案似乎是一個很好的方法來做到這一點。 – elwood 2013-03-19 13:24:26

0

我想你可以設置一個cron php文件查詢數據庫,檢索用戶名和他們的權限,並建立基於該信息的htacess文件。該腳本應該對該htacess文件具有寫入權限,所以我建議您將它放在安全的地方,在您的web項目之外和www目錄之外。

+0

這將是這樣做的最簡單,最明顯的方式,但在文件夾中的文件的組織,子文件夾等...使它至少非常生成一個文件來處理每個文件夾和文件,可以訪問/寫入的用戶列表。我想我肯定需要找到一種方法告訴Apache,如果一個特定的用戶被授權訪問特定的文件,或者基於我的數據庫的一段PHP – elwood 2011-06-21 14:08:09