我构建了一个php内部网Web应用程序,允许用户显示存储在Active Directory中的信息。
我的应用程序运行正常,但在用户可以看到他的信息之前,他必须使用他的Windows凭据登录。
我想使用他登录到Windows时输入的Windows凭据,通过Active目录自动验证用户。
我使用NTLM成功获得了当前用户的用户名,本文描述了: http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/
我知道我必须使用LDAP从AD中检索用户属性。
我知道怎么做,但问题是:
我需要当前用户密码才能在@ldap_bind函数中使用它。
有没有办法检索当前用户的密码???
我正在使用Windows 7 我正在使用Apatch 2.2,php5
提前谢谢。
答案 0 :(得分:2)
不,您无法从Active Directory获取用户密码。如果可能,那么任何程序都可以获得您的密码,然后进行更改。
如果您想在不询问密码的情况下查询Active Directory,可以选择一些选项。
我不知道如何在php中执行此操作,但使用IIS可以使用集成的Windows身份验证和委派。这很难设置。
由于您所做的只是查询,只需为没有任何特殊权利的网站开户。使用此硬编码密码。
启用对Active Directory的匿名访问。这将允许您使用null作为用户名和密码。最好的做法是说不要这样做。