用以下代码读取SharePoint Service 3.0域账户信息报错“安全错误!”
读取SharePoint2010域账户是没问题的,怎么读SharePoint Service 3.0域账户信息?
///<summary>
/// 从域中读取所有用户
/// </summary>
/// <param name="ADName"></param>
/// <returns></returns>
public Data[] ReadADUser(string ADName)
{
DirectoryEntry de = new DirectoryEntry("LDAP://" + ADName);
//查询
DirectorySearcher src = new DirectorySearcher("(&(objectCategory=person)(objectClass=user))");
//根节点
src.SearchRoot = de;
//搜索范围包含所有子对象
src.SearchScope = SearchScope.Subtree;
SearchResultCollection col = src.FindAll();
Data[] ds = new Data[col.Count];
//遍历所有搜索到的节点
for(int i=0;i<col.Count;i++)
{
SearchResult res = col[i];
ds[i] = new Data();
//显示所有属性名和属性值
foreach(string myKey in res.Properties.PropertyNames)
{
foreach(object obj in res.Properties[myKey])
{
ds[i].Add(myKey, obj == null ? null : obj.ToString());
}
}
}
return ds;
}
哪一句代码报错?
该代码执行是否需要管理员权限?
只能确定是这段代码报错 因为只用了这一段代码
客户的服务器不让进 所以没办法调试 也不知道是哪句报错
在SharePoint2010中不需要管理员账户,任意在域中的账户登录,然后运行这个执行这段代码的程序即可。
@心未鳴: 首先你应该确认“安全错误!”是由那行代码触发的,另外,你应该尽可能捕获异常并记录下来,以便事后分析具体原因,最后,在UAC下,某些操作需要管理员权限才能执行,比如写注册表。
@Launcher: 确认了。是“DirectoryEntry de = new DirectoryEntry("LDAP://" + ADName);”这句报错...客户记错了自己的AD域名......