Autor Beitrag
RBS2002
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 57



BeitragVerfasst: Fr 01.10.10 10:06 
Hi,

also ich habe folgendes Problem:

Ich soll, mit Hilfe von Outlook oder einem Microsoft Active Directory mit dazugehörigen LDAP Server, eine Art Adressbuchmöglichkeit aufbauen. Bei Outlook hat dies soweit geklappt, komme dort aber nur an die lokalen Adressbücher ran - in dem Fall also sinnlos da die meisten Adressbücher auf einem Exchange Server liegen.

Da eine saubere AD Struktur vorliegt möchte ich nun diesen Weg gehen. Leider muss ich auch von dem schlechtesten Fall ausgehen - das heisst ich weiß, ausser Server, AD Admin und Kennwort, keine weiteren Daten (also nicht welcher Benutzer und welche Gruppen, bzw. Pfade, überhaupt vorhanden sind) - spiele also normaler User der über das AD sein eigenes Adressbuch aufbauen will und dem es nicht interessiert wo die ganzen Benutzer liegen.

Bisher habe ich es versucht über diesen Quellcode einzubinden:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
public List<Benutzer> GetUser()
        {
            var benutzers = new List<Benutzer>();

            try
            {
                var entry = new DirectoryEntry("LDAP://" + server.Text, username.Text, password.Text);

                var aDs = new DirectorySearcher(entry) {Filter = "(objectClass=user)"};

                foreach (SearchResult aSr in aDs.FindAll())
                {
                    string sUserName = aSr.GetDirectoryEntry().Name;
                    sUserName = sUserName.Remove(03); // Präfix "CN=" entfernen
                    var mail = (string) aSr.Properties["mail"][0];
                    benutzers.Add(new Benutzer(sUserName,mail));
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace);
                return null;
            }
            return benutzers;
        }


Wie eventuell ersichtlich versuche ich in dem Fall alle Benutzer des AD auszulesen und mit einem seperaten, nicht sichtbaren, Quellcode die dazugehörige Gruppe herauszufinden (sicherlich auch über Properties möglich, das muss ich dann sehen). Nur leider meldet er, sicherlichlich durch den Suchfilter, einen Syntaxfehler in der Abfrage. Kann mir jemand bei meinem Vorhaben weiterhelfen oder Hinweise geben?

Vielen Dank im Voraus,
mfG RBS2002
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Sa 02.10.10 00:47 
Falls du auf .NET 3.5 oder höher zurückgreifen kannst, dann würde ich dir die UserPrincipal Klasse empfehlen: msdn.microsoft.com/e...t.userprincipal.aspx