[ASP.NET] Utiliser la classe System.DirectoryServices

Voila, à force d’entendre les eloges de glop sur .net et web matrix, j’ai fini par l’installer. 3,45 seconde plus tard , j’ai regrété de ne pas l’avoir écouté plus tot… vraiment géniat cet ensemble…

Cependant, je developpe surtout des page qui interfèrent avec active diretory et j’ai donc besoin d’utiliser la classe System.DirectoryServices

voici l’integralité de mon code : <%@ Page Language=“VB” Debug=“True” %>
<%@ import Namespace=“System.DirectoryServices” %>

     

Je ne pige pas ce qui ne va pas :
Compiler Error Message: BC30002: Type ‘DirectoryEntry’ is not defined.

j’ai essayé de trouver des exemples sur le net. Rien du tout…

Oui. Import te permet juste de faire l’économie d’écrire System.DirectoryServices.DirectoryEntry.
Il faut aussi référencer cette assembly avec un <%@ Assembly %>, ou directement dans le fichier web.config.
C’est différent de Java qui combine les deux fonctionnalités dans import.

Ok, ça marche.

Reste un petit probleme, le mode de connection ‘serverless’ ne marche pas.

Ex :

x= New DirectoryEntry (LDAP://serv1/CN=users,DC=fabrikam,DC=com)
fonctionne, mais

x= New DirectoryEntry (LDAP://CN=users,DC=fabrikam,DC=com)
me renvoie l’erreur Le domaine spécifié n’existe pas ou n’a pas pu être contacté
En vbs, je savais contourner en me connectant d’abord à LDAP://RootDSE, mais là cette astuce ne marche pas (même erreur).

Ah là, désolé, je sais pas. J’ai toujours trouvé ça assez dur de trouver le bon chemin LDAP. J’ai toujours fait ça en tâtonnant des heures.
Je sais, c’est vachement encourageant. Bon courage, justement.

[quote]Ah là, désolé, je sais pas. J’ai toujours trouvé ça assez dur de trouver le bon chemin LDAP. J’ai toujours fait ça en tâtonnant des heures.
Je sais, c’est vachement encourageant. Bon courage, justement.[/quote]pas grave, je pense que c’est un problème de configuration du serveur ou de l’application.

Sinon pour suivre sur active directory (System.DirectoryServices), nous avons la classe directoryEntry qui représente un objet active directory. Cette classe possède une collection de Propertyvaluecollection qui représente les propriétés de l’objet ad.

Ma question est : existe-t’il une methode pour savoir si j’ai le droit d’écrire une propriété. Faut-il essayer et traiter les erreurs (de qui entraine un traffic ad inutile en cas de réussite), faut-il que je fasse une routine particulierement complexe pour scanner les acls. ou existe-t’il un truc du genre objetad.properties(“truc”).iswritable ?