Bonjour,
En fait, j'ai un problème au niveau de ma création d'une ACE.
Mon but, en fait, est de mettre sur un objet "computer" dans Active Directory la permission "RESET PASSWORD" pour l'utilisateur du PC (pour une installation RIS).
C'est mon premier contact avec les Security Descriptor et... c'est pas glorieux :)
Un p'tit code vaut mieux qu'on long discours, donc le voilà.ActiveDs.SecurityDescriptor sd = null;
ActiveDs.AccessControlList dacl = null;
ActiveDs.AccessControlEntry NewAce = new AccessControlEntryClass();
string ComputerPath;
ComputerPath="LDAP://domaine.com/CN=test,OU=Just Created,OU=IT,OU=Bruxelles,OU=Belgium,OU=all computers,DC=domaine,DC=com";
DirectoryEntry dsobject = new DirectoryEntry(ComputerPath,"login","password");
sd = (SecurityDescriptor) dsobject.Properties["ntSecurityDescriptor"].Value;
dacl = (ActiveDs.AccessControlList) sd.DiscretionaryAcl;
NewAce.AccessMask = 0x256;
NewAce.AceType = 0x5;
NewAce.AceFlags=0;
NewAce.Trustee=@"domaine\user";
NewAce.Flags=0x1;
NewAce.ObjectType="{00299570-246D-11D0-A768-00AA006E0529}";
sd.DiscretionaryAcl = dacl;
dsobject.Properties["ntSecurityDescriptor"].Value = sd;
dsobject.CommitChanges();
Voilà... Chaque fois que j'exécute mon code, j'ai une erreur de type :
The security ID structure is invalid.
Exception Details: System.Runtime.InteropServices.COMException: The security ID structure is invalid.
Donc voilà... J'ai beau chercher et comparer avec de la doc trouvée sur le net, j'y arrive pas...
Merci de m'avoir lu.