2016-06-03 3 views
0

Как получить учетную запись свойства отключено? У меня есть список контактов, и вы хотите знать, является ли активный работникКак получить свойство (Учетная запись отключена) в LDAP C#

this property - image

Моя геттер информация о сотруднике с Active Directory. Мне нужно свойство, которое определяет, активен ли рабочий.


public List<string> SomeInformation() 
    { 
     List<string> lista = new List<string>(); 

     try 
     { 
      DirectoryEntry myLdapConnection = SearchRoot; 
      DirectoryEntry gbvision = myLdapConnection.Children.Find("OU=WN"); 
      DirectorySearcher search = new DirectorySearcher(gbvision); 

      search.Filter = "(&(objectClass=user))"; 



      // create an array of properties that we would like and 
      // add them to the search object 

      string[] requiredProperties = new string[] { "cn", "mail", "telephoneNumber", "title", "mobile", "department" }; 

      foreach (String property in requiredProperties) 
       search.PropertiesToLoad.Add(property); 


      foreach (SearchResult result in search.FindAll()) 
      { 

       if (result != null) 
       { 
        foreach (String property in requiredProperties) 
        { 
         foreach (Object myCollection in result.Properties[property]) 
         { 
          Console.WriteLine(String.Format("{0,-20} : {1}", property, myCollection.ToString())); 
          lista.Add(property + myCollection); 
         } 
        } 
        lista.Add("END"); 


       } 
       else 
       { 
        Console.WriteLine("User not found!"); 
       } 
      } 
     } 

     catch (Exception e) 
     { 
      Console.WriteLine("Exception caught:\n\n" + e.ToString()); 
     } 
     return lista; 

    } 
+2

Я думаю, что вы хотите 'userAccountControl' свойство, которое вы бы проверить на' ACCOUNTDISABLE (2, 0x0002) '- смотри, например, [Сценарий PowerShell для запроса флажков UserAccountControl] (https://blogs.msdn.microsoft.com/muaddib/2014/03/30/powershell-script-to-query-useraccountcontrol-flags/) – stuartd

ответ

1

Вы можете использовать этот LDAP фильтр, чтобы увидеть, если учетная запись отключена:

(UserAccountControl:1.2.840.113556.1.4.803:=2) 

Так, чтобы получить активные пользователи:

(&(objectClass=user)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))) 
0

Благодарим Вас за ответ и после использования этого фильтра не отображается мне список пользователей. Я нашел решение для этого, и это:

var accountIsDisabled = Convert.ToBoolean(int.Parse(flag) & 0x0002); 
Смежные вопросы