导航

原文地址:http://blog.csdn.net/sinsel/archive/2007/03/08/1524004.aspx

在ASP.NET中, 启用Windows集成验证,这样我们就有了登陆网页的用户名和密码的哈希版本,但是我们是不能直接使用的,因为是密码的哈希版本,而不是密码本身。

比如:

System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(
             
"LDAP://22.11.21.232:389/OU=ou0000_team,OU=ou0000_unit,OU=ou0000_division,DC=bocadtest,DC=com"
,
                
"administrator""admin"
,System.DirectoryServices.AuthenticationTypes.Secure);


 我们不能使用此构造函数来传入用户名和密码,所以只能把此ASP.NET运行线程的安全上下文传递过去,这样的话,我们需要在Web.config中,加入下面的标记:

    <authentication mode="Windows" />
    <identity impersonate="true"/>   


这样的话,就可以把安全上下文传递下去了,使用下面的构造函数:

System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(
                
"LDAP://22.11.21.232:389/OU=ou0000_team,OU=ou0000_unit,OU=ou0000_division,DC=bocadtest,DC=com");

这样就可以用用户的权限来操作active directory了。当然如果使用带用户名密码的构造函数也可以,因为用户名和密码已经不起作用。

资料:http://support.microsoft.com/kb/329986/zh-cn