我有以下代码:如何使用COM从PHP/IIS读取Active Directory组成员身份?
$bind = new COM("LDAP://CN=GroupName,OU=Groups,OU=Division,DC=company,DC=local");
当我从一个命令提示执行它,它运行良好。当它在IIS/PHP/ISAPI下运行时,它会发生故障。
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `LDAP://CN=...[cut]...,DC=local':
An operations error occurred. ' in index.php
Stack trace:
#0 index.php: com->com('LDAP://CN=...')
#1 {main} thrown
IIS被配置用于Windows身份验证(没有匿名,没有基本的,无消化)和我连接以相同的用户作为命令提示。我在IIS日志文件或事件日志中找不到任何特定的错误。
本练习的主要目的是避免将用户凭据保留在我的脚本中,并依靠IIS身份验证将它们传递到活动目录。我知道你可以使用LDAP来完成同样的事情,但据我所知,凭证不能通过。
也许它在某种程度上与我尝试将它移植到ASP时得到的错误有关。我得到错误80072020(我目前正在查找)。
事件日志没有显示任何异常。没有警告,没有错误。已启用完全安全审核(安全策略中的每个项目都成功和失败),并且它显示每个用户对网页进行身份验证时的成功Windows登录(这是预期的)。
在这种情况下不使用IUSR帐户。事实上,我可以建立一个数据库的连接,并通过证书(PHP中的odbc_connect),所以我有证据表明身份验证部分正在工作。 – Martin 2008-09-17 16:21:39