Technorati Tag: ,

Per chi conosce Active Directory, è noto che i gruppi presenti in questo repository possono essere di 4 tipologie differenti.

  • Global Group
  • Domain Local Group
  • Universal Group
  • Security Group

Ora pensiamo ad una semplice query Ldap con DirecotrySearcher per elencare tutti i gruppi presenti in AD. Dovremmo scrivere qualcosa del genere :

foreach (SearchResult risultato in risultati)
{
DirectoryEntry de = risultato.GetDirectoryEntry();
GruppoWindows gruppo = new GruppoWindows();
gruppo.Nome = (string)de.Properties["name"].Value;
gruppo.Sid = ConvertiSid((byte[])de.Properties["objectsid"].Value);
gruppo.Descrizione = (string)de.Properties["description"].Value;
gruppo.Type = (int)de.Properties["grouptype"].Value;

La cosa assurda è che il valore int che riceviamo da Ldap per il tipo gruppo è uno di questi :

Aggiungo alcune modifiche reperite in rete!!

Tipo Gruppo Valore int

Distribuition

2

Domain local group / Security

-2147483644

Global Security

-2147483646

Universal Security

-2147483640

BuiltinLocal Security

-2147483643

La cosa che proprio non capisco è: perchè assegnare al Security un valore cosi' strano??? smile_cry