关于AD更新的疑惑 UserPrincipal和用username查询到的结果路径实例化的DirectoryEntry
我在实现AD用户信息同步的时候,就出现了一个疑惑:到底是通过UserPrincipal实例去赋值更新还是用username查询到的结果路径实例化的DirectoryEntry去更新,是不是AD里没有用户要更新就用UserPrincipal ,而存在用户就先用DirectoryEntry去搜索,找到指定条目之后再用对应的path实例化一下去更新属性,具体如下
方案一:
UserPrincipal up = new UserPrincipal(context);
up.Address=...
up.Tel=...
...
方案二:
先实例化一个rootEntry
//searcher
DirectorySearcher directorySearch =
new DirectorySearcher(RootEntry,filter);
SearchResult results = directorySearch.FindOne();
if (results != null)
{
DirectoryEntry userEntry = new DirectoryEntry(results.Path, LDAPUser, LDAPPassword);
UserInfo.name=...
UserInfo.Tel=...
...
}
有大神能帮帮忙解答一下吗,我刚接触这东西,平时只是顺手党,所以没什么分了 AD --------------------编程问答-------------------- 方案二没写完整
if (results != null)
{
DirectoryEntry userEntry = new DirectoryEntry(results.Path, LDAPUser, LDAPPassword);
return new UserInfo(userEntry);
}
UserInfo.name=...
UserInfo.Tel=...
...
实际上UserInfo里面的字段赋值都是通过
public string GetPropertyValue(DirectoryEntry propertyEntry,string properties)
{
if (propertyEntry.Properties.Contains(properties))
{
return propertyEntry.Properties[properties][0].ToString();
}
else
{
return String.Empty;
}
}
补充:.NET技术 , ASP.NET