помощь в поиске пользователя с помощью управления учетными записями службы каталогов - PullRequest
3 голосов
/ 04 апреля 2011

У меня проблема при попытке передать значение в метод через параметр (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 Ответ

1 голос
/ 04 апреля 2011

Попробуйте это - прочитайте свойство .Text вашего текстового поля (и вызовите .Trim(), чтобы избавиться от любого дополнительного, лишнего пробела) вместо использования .ToString() на нем:

string userName = txtUserName.Text.Trim();

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

Если вы не укажете, какой тип удостоверения искать, - тогда AD выполнит поиск наиболее распространенных типов удостоверений и, надеюсь, найдет вашего пользователя!

...