Comment obtenir la liste des attributs d'utilisateur de l'annuaire actif (pas d'attributs particuliers de l'utilisateur, par exemple), par exemple, etc.Liste d'attributs Active Directory à l'aide de C#
Répondre
DirectoryEntry dir = new DirectoryEntry();
dir.Path = "LDAP://YourActiveDirServername ";
DirectorySearcher sea = new DirectorySearcher(dir);
sea.Filter = "(sAMAccountName=Uname)";
SearchResult seares = sea.FindOne();
StringBuilder str = new StringBuilder();
System.DirectoryServices.ResultPropertyCollection prop = seares.Properties;
ICollection coll = prop.PropertyNames;
IEnumerator enu = coll.GetEnumerator();
while (enu.MoveNext())
{
str.Append(enu.Current + " = " + seares.Properties[enu.Current.ToString()][0] + "\n");
}
Aussi, jetez un oeil à: http://www.codeproject.com/KB/system/everythingInAD.aspx
Cela va seulement pour vous donner les propriétés que cet utilisateur a (par exemple, où il y a une valeur définie pour cet utilisateur). Ceci ** n'énumère ** pas ** toutes ** les propriétés définies dans le schéma LDAP –
Cela ne vous procure que des propriétés pour cet utilisateur ... pas pour "tous les attributs" comme l'indique la question. –
Si vous êtes sur .NET 3.5 et, vous devez vérifier les classes System.DirectoryServices.ActiveDirectory
pour cela. Vous devez regarder des classes comme ActiveDirectorySchema
et ActiveDirectorySchemaClass
.
Vous pouvez mettre la main sur le schéma AD actuel en utilisant:
ActiveDirectorySchema currSchema = ActiveDirectorySchema.GetCurrentSchema();
Lorsque vous avez le schéma actuel, vous pouvez vérifier les différentes définitions de classe, par exemple:
ActiveDirectorySchemaClass userSchema = currSchema.FindClass("person");
Une fois que vous avez cet objet, vous pouvez inspecter et énumérer ses propriétés, des choses telles que:
- MandatoryProperties
- OptionalProperties
et ainsi de suite pour obtenir un aperçu du schéma AD.
doh, vous êtes 3 secondes plus vite que moi :) –
Vous pouvez utiliser WMI:
ObjectGetOptions objectGetOptions = new ObjectGetOptions(null, System.TimeSpan.MaxValue, true);
ManagementClass managementClass = new ManagementClass("root\\directory\\LDAP", "ads_user", objectGetOptions);
foreach (PropertyData dataObject in managementClass.Properties)
{
Console.WriteLine(dataObject.Name);
}
Alors que ADExplorer ne liste pas tous les attributs disponibles, je l'ai trouvé un excellent outil pour voir ce qui va où.
Vous pouvez le télécharger à partir http://technet.microsoft.com/en-us/sysinternals/bb963907.aspx
UserPropertyList = new List<string>();
ActiveDirectorySchema currSchema = ActiveDirectorySchema.GetCurrentSchema();
ICollection Collection = currSchema.FindAllProperties();
IEnumerator Enumerator = Collection.GetEnumerator();
while (Enumerator.MoveNext())
{
UserPropertyList.Add(Enumerator.Current.ToString());
}
Le code ci-dessus ajoutera tous les attributs de recherche d'Active Directory pour la UserPropertyList...
expansion sur marc_s de réponse ici. Voici un exemple de code complet qui imprime le nom commun et le nom de l'attribut réel.
ActiveDirectorySchema schema = ActiveDirectorySchema.GetCurrentSchema();
ActiveDirectorySchemaClass person = schema.FindClass("user");
foreach(ActiveDirectorySchemaProperty property in person.GetAllProperties())
{
Console.WriteLine("{0} = {1}", property.CommonName, property.Name);
}
Exemple de sortie.
Common-Name = cn
Instance-Type = instanceType
NT-Security-Descriptor = nTSecurityDescriptor
Object-Category = objectCategory
Object-Class = objectClass
Object-Sid = objectSid
SAM-Account-Name = sAMAccountName
Account-Expires = accountExpires
...
- 1. Liste Active Directory UO
- 2. C# Bibliothèque Active Directory
- 3. C# Active Directory via WMI
- 4. API C++ à développer sur Active Directory
- 5. doutes à Active Directory en utilisant C#
- 6. ASP Active Directory Active Directory sans Popup
- 7. Active Directory dans Asp.net C#
- 8. Active Directory
- 9. Connexion à Active Directory
- 10. Comment accéder à Active Directory à l'aide de C++ Builder?
- 11. Active Directory
- 12. Active Directory dans VB.Net
- 13. Connexion automatique à Active Directory
- 14. Active Directory à LDIF OpenLDAP
- 15. Groupes Active Directory
- 16. Demande Active Directory rapide
- 17. Autorisation de carte à puce Active Directory
- 18. Authentification interdomaine Active Directory
- 19. problème d'authentification Active Directory après Reconnect - C#
- 20. Authentification Active Directory
- 21. Hériter des autorisations Active Directory via C#
- 22. Groupes imbriqués Active Directory
- 23. C# contre Active Directory sur LDAP
- 24. Synchronisation entre l'application C# et Active Directory
- 25. GSSAPI et Active Directory en C#
- 26. Accès à Active Directory à l'aide d'ASP.NET
- 27. Suivi des modifications dans Active Directory à l'aide de C#
- 28. JSF authentification Active Directory
- 29. Authentification contre Active Directory en utilisant C#
- 30. Obtenir les utilisateurs Active Directory par une liste de guid
Je pense que vous devriez marquer ceci avec "répertoire actif", pas asp.net ou mvc, puisque la question ne se rapporte à aucun d'entre eux. – neontapir
ou peut-être vous devriez ajouter tag ldap –