ldap & c#

ldap & c# - C#/.NET managed - Programmation

Marsh Posté le 24-06-2004 à 15:20:58    

bonjour.
Je dois travailler avec ldap mais je sais pas trop comment ca marche. Si quelqu'un connais est-ce qu'il pourrait m'espliquer un peu ou me donner de bonne adresse de site.
 
ps: j'arrive à établir une connection mais je capte pas comment la fonction de recherche fonctionne
 
merci d'avance

Reply

Marsh Posté le 24-06-2004 à 15:20:58   

Reply

Marsh Posté le 04-08-2004 à 01:29:34    

Tu dois utiliser pour cela System.DirectoryServices.
 
Jette un oeil sur cet article :
http://www.codeproject.com/csharp/ADTester.asp
 
--
Jay
{Epitech.}
http://www.labtech.epitech.net/blogs/jaylee

Reply

Marsh Posté le 04-08-2004 à 09:52:06    

merci mais depuis le tps j'ai bien avancé.
J'arrive à faire plein de truc. ;-)
 
par contre si quelqu'un sait comment on active un compte je suis preneur.
Je m'esplique, j'arrive avec le code à créer un utilisteur dans l'annuaire. Malheureusement, j'arrive pas à lui activer le compte. C'est un peu con car ca sert à rien d'ajouter des utilisateurs si le compte n'est pas activé
 
si quelqu'un connait....

Reply

Marsh Posté le 04-08-2004 à 11:21:36    

schmur a écrit :

merci mais depuis le tps j'ai bien avancé.
J'arrive à faire plein de truc. ;-)


 
Je me doute :) Mais c'était au cas ou ce soit le contraire...
 

schmur a écrit :

par contre si quelqu'un sait comment on active un compte je suis preneur.
Je m'esplique, j'arrive avec le code à créer un utilisteur dans l'annuaire. Malheureusement, j'arrive pas à lui activer le compte. C'est un peu con car ca sert à rien d'ajouter des utilisateurs si le compte n'est pas activé
 
si quelqu'un connait....


 
tu peux utiliser le code suivant :
 

Code :
  1. // UF_NORMAL_ACCOUNT      0x00200 = true
  2. // UF_DONT_EXPIRE_PASSWD  0x10000 = true
  3. // UF_ACCOUNTDISABLE      0x00002 = false
  4. int userACFlags = (int)newUser.Properties["userAccountControl"].Value;
  5. userACFlags |= 0x200 | 0x10000;
  6. userACFlags &= ~0x2;
  7. newUser.Properties["userAccountControl"].Value = userACFlags;


 
Il faut cependant que tu ai assigné un mot de passe avant, si mes souvenirs sont bons.
 
--  
Jay  
{Epitech.}  
http://www.labtech.epitech.net/blogs/jaylee

Reply

Marsh Posté le 04-08-2004 à 11:47:34    

humm, c'est surement le mot de passe alors.
Je vais essaye un peu plus tard
 
 
ps: je sais pas si tu connais mais j'utilise une référence novell pour faire tout ca
 
encore merci

Reply

Marsh Posté le 05-08-2004 à 14:42:53    

Un petit exemple pour sortir la liste des noms de machines appartenant à un domaine. Ca interroge Active Directory qui est un annuaire LDAP
 
C'est basic mais c'est un début.
 

Code :
  1. public static SearchResultCollection getComputers(string domain)
  2.  {
  3.   DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain);
  4.   DirectorySearcher searcher = new DirectorySearcher(entry);
  5.   searcher.Filter = "(objectClass=computer)";
  6.   searcher.PropertiesToLoad.Add("name" );
  7.   SearchResultCollection searchResults = searcher.FindAll();
  8.   return searchResults;
  9.  }


Message édité par pascal34 le 05-08-2004 à 14:43:34
Reply

Marsh Posté le 06-08-2004 à 08:46:18    

jaylee a écrit :

Je me doute :) Mais c'était au cas ou ce soit le contraire...
 
 
 
tu peux utiliser le code suivant :
 

Code :
  1. // UF_NORMAL_ACCOUNT      0x00200 = true
  2. // UF_DONT_EXPIRE_PASSWD  0x10000 = true
  3. // UF_ACCOUNTDISABLE      0x00002 = false
  4. int userACFlags = (int)newUser.Properties["userAccountControl"].Value;
  5. userACFlags |= 0x200 | 0x10000;
  6. userACFlags &= ~0x2;
  7. newUser.Properties["userAccountControl"].Value = userACFlags;


 
Il faut cependant que tu ai assigné un mot de passe avant, si mes souvenirs sont bons.
 
--  
Jay  
{Epitech.}  
http://www.labtech.epitech.net/blogs/jaylee


 
heu c'est comment qu'on assigne un mot de passe ?

Reply

Marsh Posté le 06-08-2004 à 08:47:20    

merci pascal mais j'ai touvé un autre moyen

Reply

Marsh Posté le 06-08-2004 à 09:07:54    

schmur a écrit :

merci pascal mais j'ai touvé un autre moyen


 
Ca m'intéresse

Reply

Marsh Posté le 06-08-2004 à 09:29:55    

pascal34 a écrit :

Ca m'intéresse


Citation :


LdapConnection ldapConn= new LdapConnection();
ldapConn.Connect ("AdresseIP ou nommachine",389);
ldapConn.Bind("Pseudo","MotdePasse" );  
string[] filtre=new string[2];
filtre[0]="samaccountname";
filtre[1]="objectclass";
string searchFilter="(&(objectclass=user)(!(comment=*)))";
string searchBase = "dc=support,dc=local";
LdapSearchResults lsc = ldapConn.Search(searchBase,LdapConnection.SCOPE_SUB,searchFilter ,filtre,false);


 
voila apres faut traiter les ldapserachresult c'est pas compliqué. En plus il y a un exemple sur le site de novell.
Accésoirement il faut une référence : Novell.Directory.Ldap
elle est gratuite et tu peux la trouver sur le site de novell
   

Reply

Marsh Posté le 06-08-2004 à 09:29:55   

Reply

Marsh Posté le 06-08-2004 à 09:38:27    

C'est toujours bon à savoir.
Merci

Reply

Marsh Posté le 06-08-2004 à 10:02:07    

'tain je savais pas que novelle avait fait une api .NET... vu la qualité de leur API java, ça doit bien le faire !
faura que j'essaie ça :)

Reply

Marsh Posté le 06-08-2004 à 10:04:43    

titione a écrit :

'tain je savais pas que novelle avait fait une api .NET... vu la qualité de leur API java, ça doit bien le faire !
faura que j'essaie ça :)


 
en effet elle est pas mal. Tu peux faire plein de truc.
Créer des groupes, y metrre des membre pareil pour les ou et les utilisateur. Lister tout ce que tu veux, puis même d'autre truc que je connais pas surement.
Sauf que pour l'instant j'arrive pas a activer le compte d'un utilisateur.....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed