2008-11-27 6 views
1

J'Interroger tous les groupes de sécurité dans un domaine spécifique en utilisantComment accéder au champ de notes sur un objet GroupPrincipal

PrincipalSearchResult<Principal> results = ps.FindAll(); 

où ps est un PrincipalSearcher. J'ai alors besoin d'itérer le résultat (en le convertissant d'abord en un GroupPrincipal) et de trouver ceux qui contiennent une chaîne spécifique dans le champ des notes.

Mais le champ Notes de AD n'est apparemment pas un champ public dans la classe GroupPrincipal, doh. Qu'est-ce que je fais de mal?

Mise à jour: J'ai abandonné sur celui-ci. Il semble qu'il n'y a aucun moyen d'accéder à ce champ Notes embêtant.

Répondre

1

Je reviens à ce défi encore et encore, mais maintenant j'ai finalement abandonné. Il semble que cette propriété soit inaccessible.

6

Vous pouvez accéder le champ 'notes d'une entrée de répertoire en tant que tel:

// Get the underlying directory entry from the principal 
System.DirectoryServices.DirectoryEntry UnderlyingDirectoryObject = 
    PrincipalInstance.GetUnderlyingObject() as System.DirectoryServices.DirectoryEntry; 

// Read the content of the 'notes' property (It's actually called info in the AD schema) 
string NotesPropertyContent = UnderlyingDirectoryObject.Properties["info"].Value; 

// Set the content of the 'notes' field (It's actually called info in the AD schema) 
UnderlyingDirectoryObject.Properties["info"].Value = "Some Text" 

// Commit changes to the directory entry 
UserDirectoryEntry.CommitChanges(); 

A pris un peu de chasse - j'avais supposé la propriété des notes était en effet appelé « notes », ADSIEdit à la rescousse !

+0

Cela devrait être la réponse acceptée =) –

1

Pour tous ceux qui utilisent l'attribut "info": notez qu'il lancera une exception si vous utilisez une chaîne vide ou une valeur nulle.

1

J'ai été en mesure de changer ce champ.

entryToUpdate.Properties ["info"]. Effacer(); entryToUpdate.Properties ["info"]. Ajoutez ("du texte que vous voulez");

Alors merci :) Brad

+0

S'il vous plaît, essayez de lire ce http://stackoverflow.com/about, pour obtenir plus de compréhension au sujet de questions/réponses ici sur le SO. Votre contribution ne répond pas à la question. C'est plus un commentaire, que vous pouvez ajouter une fois que vous augmenterez votre réputation: http://stackoverflow.com/faq#reputation –

Questions connexes