Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Active Directory User Information auslesen | LDAP | ASP.NET | SharePoint2010 | Visual Webpart
Birne
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Hamburg

Themenstarter:

Active Directory User Information auslesen | LDAP | ASP.NET | SharePoint2010 | Visual Webpart

beantworten | zitieren | melden

Hallo Community,

ich versuche derweil aus einem AD Informationen zu einem User auszulesen (Email Adresse, Vorname und Co.)

Dazu bin ich bisher wie folgt vorgegangen:


            string filter = string.Format("(&(ObjectClass={0})(sAMAccountName={1}))", "person", "DerEntsprechendeUserName");
            string domain = "DieADDomain";

            System.DirectoryServices.DirectoryEntry adRoot = new System.DirectoryServices.DirectoryEntry("LDAP://" + domain, null, null, AuthenticationTypes.Secure);
            System.DirectoryServices.DirectorySearcher searcher = new System.DirectoryServices.DirectorySearcher(adRoot);
            searcher.SearchScope = SearchScope.Subtree;
            searcher.ReferralChasing = ReferralChasingOption.All;
            searcher.Filter = filter;

            SearchResult result = searcher.FindOne();
            System.DirectoryServices.DirectoryEntry directoryEntry = result.GetDirectoryEntry();

             string displayName = directoryEntry.Properties["displayName"][0].ToString();
             string firstName = directoryEntry.Properties["givenName"][0].ToString();
             string lastName = directoryEntry.Properties["sn"][0].ToString();
             string email = directoryEntry.Properties["mail"][0].ToString();

Beim auslesen der Properties bekomme ich allerdings stets die folgende Exception:
Fehler
COMException: Unbekannter Fehler (0x8000500c)

Beim Debuggen ist mir auch aufgefallen das ich für den directoryEntry keine Schema Informationen abrufen, ebenfalls eine Exception vom Typ 'System.Runtime.InteropServices.COMException' geworfen bekomme.

Hat von euch jemand Rat wie ich erfolgreich zu meinem Ziel gelange und die spezifischen Informationen zu einem spefifischen User aus dem Active Directory auslesen kann ?

Vielen Dank schonmal
- Birne -
private Nachricht | Beiträge des Benutzers
Killerhase
myCSharp.de - Member



Dabei seit:
Beiträge: 79
Herkunft: Bayern

beantworten | zitieren | melden

Hallo Birne,

nur so eine Idee:

Eventuell hast du keine ausreichende Berechtigungen um die Daten auszulesen. Bei unserer Domain funktioniert der Code von dir soweit in einer Konsolenanwendung. (Copy & Paste)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Killerhase am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.393

beantworten | zitieren | melden

Andere, elegantere Variante, sofern Rechte für das Lesen existieren:


PrincipalContext domainContext = new PrincipalContext( ContextType.Domain, "domain.name" );
UserPrincipal userPrincipal = UserPrincipal.FindByIdentity( domainContext, IdentityType.SamAccountName, "samAccountName" );

string displayName = userPrincipal.DisplayName;
private Nachricht | Beiträge des Benutzers
felix
myCSharp.de - Member



Dabei seit:
Beiträge: 174

beantworten | zitieren | melden

Hallo Birne,

im Normalfall hängt der SharePoint-Server am ActiveDirectory. D.h. du solltest problemlos übers SharePoint-Objektmodell (Also Microsoft.SharePoint) Benutzerinformationen auslesen können. Aus meiner Sicht brauchst du da kein DirectoryEntry.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von felix am .
private Nachricht | Beiträge des Benutzers