2012-06-12 90 views
1

我們正在運行與Windows Server 2008的Active Directory。
我們還有一個Linux的Ubuntu服務器12.04與Apache2和LDAP。通過Linux與LDAP/PHP訪問Windows服務器文件

是否有可能通過PHP/Javascript使用當前登錄網站的用戶的權限訪問Windows Server文件系統?

背景:我們在Ubuntu服務器上運行Joomla和Mediawiki。用戶寫一篇文章,並希望添加一些鏈接到Windows Server上的文件和文件夾(!)。恕我直言,除了小費鏈接的最佳方式是選擇文件/文件夾與PHP/Javascript目錄列表。但用戶應該只能看到他有權訪問的目錄。
由於我需要文件/文件夾的完整路徑,因此HTML-「輸入」字段不可選。

任何想法? 感謝您的幫助!

回答

0

除非您可以使用PHP對Active Directory服務器進行身份驗證(可能意味着以明文的用戶密碼),否則您將需要使用PHP來列出這些文件。

PHP有一個scandir()函數。由於PHP需要全部獲得閱讀訪問Active Directory服務器,如果您使用PHP來確定用戶可以看到哪些文件,那麼您可以簡單地顯示他們需要的文件。

你可以利用這個功能獲得的文件結構:

function listdir($folder) { 
    if (!is_dir($folder)) { 
     return array(); //empty if not a folder 
    } 
    $return = scandir($folder); 
    $subfolders = array(); 
    array_shift($return); //first two values are always .. & . 
    array_shift($return); 
    foreach ($return as $key => $value) { 
     if (is_dir($value)) { 
      unset($return[$key]); 
      $subfolders[$value] = listdir($value); //recursively analyse the subdirectory 
     } 
    } 
    return array_merge(array_values($return), $subfolders); 
} 

請注意我沒有測試過這一點,所以請告訴我,如果有問題。

scandir() function reference

相關問題