我正在编写一段代码,用于搜索特定用户GivenName(forename)和Surname基于其SamAccountName作为搜索参数的活动目录,然后返回包含其给定名称和姓氏的字符串。
到目前为止我写的代码如下:
public static string GetName(string uName)
{
StringBuilder builder = new StringBuilder();
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "serverName"))
{
UserPrincipal user = new UserPrincipal(context);
user.SamAccountName = uName;
PrincipalSearcher srch = new PrincipalSearcher(user);
srch.QueryFilter = user;
PrincipalSearchResult<Principal> res = srch.FindAll();
foreach (UserPrincipal u in res)
{
builder.Append(u.GivenName);
builder.Append(" ");
builder.Append(u.Surname);
}
return builder.ToString();
}
}
我对上述代码的问题是在运行时行
user.SamAccountName = uName;
抛出以下错误:DirectoryServicesCOMException未处理“发生本地错误”
主要上下文对象创建得很好,就像用户主体对象一样,它只在执行上面提到的行时抛出错误。更奇怪的是,这段代码似乎在几天前就可以运行了。如果有人读到这个有任何想法,为什么我得到这个错误,我会非常感激!
P.S。 我试图询问这个问题,因为血腥的错误信息有点太神秘,无法实际弄清楚,或者至少对我来说(实际发生本地错误)真的如此?无论哪个开发人员认为这是一个有用的错误信息都是白痴。
答案 0 :(得分:2)
可能的原因: