帮助使用目录服务帐户管理查找用户

时间:2011-04-04 13:57:55

标签: c# active-directory directoryservices

尝试通过参数(userName)将值传递给方法时遇到问题。如果我对该值进行硬编码,它将找到该用户。

非常感谢任何指导,

protected void btnSubmit_Click(object sender, EventArgs e)
{
   if (!String.IsNullOrEmpty(txtUserName.Text))
   {
      string userName = txtUserName.ToString();

      PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "car2.local", "DC=car2,DC=local");
      UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userName);

      if(usr != null)
      {
         lblStatus.Text = "user exists";
      }
      else
      {
         lblStatus.Text = "user does not exists";
      }
   }
}

1 个答案:

答案 0 :(得分:1)

试试这个 - 阅读文本框的.Text属性(并调用.Trim()以删除任何其他多余的空格),而不是使用.ToString()

string userName = txtUserName.Text.Trim();

UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, userName);

如果您没有指定要搜索的身份类型 - 那么AD将搜索最常见的身份类型,并希望找到您的用户!