2009-07-29 12 views
6

Supponiamo di aver collegato ad Active Directory utilizzando la sintassi simiple:Come si elimina un attributo dell'oggetto utente in Active Directory?

string adPath = "LDAP://server.domain.com/CN=John,CN=Users,dc=domain,dc=com"; 
DirectoryEntry userEntry = Settings.GetADEntry(adPath); 

Ora si vuole vedere un attributo per l'utente, dicono l'attributo mail:

Console.WriteLine("User's mail attribute is " + userEntry.Properties["mail"]); 

Ora come posso eliminare il valore attributo mail?

risposta

13

Si rivela essere piuttosto semplice, anche se non molto comunemente usato ...

string adPath = "LDAP://server.domain.com/CN=John,CN=Users,dc=domain,dc=com";DirectoryEntry userEntry = Settings.GetADEntry(adPath); 
userentry.Properties["mail"].Clear(); 
userentry.CommitChanges(); 
+0

Soluzione perfetta senza dover utilizzare l'Invoke con un nome di metodo. Saluti! – jamesbar2

+0

Anni dopo e ancora utile in uno scenario critico. Saluti. –

+1

Grazie! Mi chiedo perché. Clear() funziona ma usando userentry.Properties ["mail"]. Value = "" non funzionerebbe. –

0

Non sono sicuro che è possibile eliminarlo dal oggetti utente di solito seguono uno schema di società, ma forse qualcosa di simile alla seguente lavoreranno:

userEntry.Properties["mail"] = null; 

o forse:

userEntry.Invoke("Put", "mail", null); 

poi:

userEntry.CommitChanges(); 
Problemi correlati