我正在尝试以编程方式在Active Directory中设置属性。它在本地运行时有效,但是,当我在IIS服务器上部署它时,它会无声地失败。
我的代码如下:
try
{
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, null, _DomainDN))
{
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://DC=-----,DC=-----,DC=-----");
DirectorySearcher search = new DirectorySearcher(searchRoot);
search.Filter = "(&(objectClass=user)(userPrincipalName=";
search.Filter = search.Filter + upn + "))";
search.SearchScope = SearchScope.Subtree;
SearchResultCollection rs = search.FindAll();
foreach (SearchResult r in rs)
{
DirectoryEntry entryToUpdate = r.GetDirectoryEntry();
entryToUpdate.Properties["extensionAttribute1"].Value = "1";
entryToUpdate.CommitChanges();
}
}
}
catch(Exception e)
{
//.....FAILS SILENTLY. NO ERROR THROWN
}
如果有人对此有解决方案,我将非常感激。
谢谢!
答案 0 :(得分:1)
您确定在托管IIS的计算机上通过服务器管理器安装了所有Active Directory服务吗?他们需要运行才能使LDAP查询正常运行。 感谢