2012-06-12 56 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

相关问题