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

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Fabiano
Thema: Mit ActiveDirectory verbinden von ausserhalb der Domäne
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Klappt auch nicht, dann kommt nur ein System.Runtime.InteropServices.COMException: 'Unknown error (0x80005000)' an der gleichen Stelle.

Thema: Mit ActiveDirectory verbinden von ausserhalb der Domäne
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hier noch das zweite Bild

Thema: Mit ActiveDirectory verbinden von ausserhalb der Domäne
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ah, tut mir leid wegen der Bilder, hab sie nun angehängt.

Hab nun AuthenticationTypes.SecureSocketsLayer in AuthenticationTypes.Encryption geändert und bekomme immer noch die gleiche Exception geschmissen. Aber gemäss https://docs.microsoft.com/en-us/dotnet/api/system.directoryservices.authenticationtypes?view=dotnet-plat-ext-5.0 hat der Enum-Member ohnehin den gleichen Wert?

Thema: Mit ActiveDirectory verbinden von ausserhalb der Domäne
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Abt! Vielen Dank für deine schnelle Antwort!

Ich muss per LDAPS auf das Directory zugreifen, auch von ausserhalb der Domäne.
Kerberos ist dafür offensichtilich nicht notwendig, da es mit Apache Directory Studio ebenfalls geht (ohne Kerberos)

Thema: Mit ActiveDirectory verbinden von ausserhalb der Domäne
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen!

Hab kein AD-spezifisches Subforum gefunden und poste daher hier.
Folgendes C#-Programm funktioniert wie erwartet, wenn es auf dem DC oder einem Member Server ausgeführt wird:

using System;
using System.DirectoryServices;

namespace Tests.LDAP {
    class Program {
        static void Main(string[] args) {
            var server = "dc.domain.example.com";
            var port = 636;
            var container = "CN=Users,DC=domain,DC=example,DC=com";
            var path = $"LDAP://{server}:{port}/{{0}}{container}";
            var user = "[email protected]";
            var password = "s0m3p4ssw0rd";
            var de = new DirectoryEntry(string.Format(path, "CN=User Name,"), user, password, AuthenticationTypes.SecureSocketsLayer);
            var prop = de.Properties["cn"]; // <-- Hier wird die Exception geworfen
            Console.WriteLine($"cn: {prop}");
            Console.ReadKey();
        }
    }
}

Wenn ich das Programm aber ausserhalb der Domäne laufen lasse, wird folgende Exception geworfen:

Unhandled Exception: System.Runtime.InteropServices.COMException: The server is not operational.
   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.get_AdsObject()
   at System.DirectoryServices.PropertyValueCollection.PopulateList()
   at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
   at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
   at Tests.LDAP.Program.Main(String[] args) in C:\source\Tests\Tests.LDAP\Program.cs:line 17

Wenn ich mit Apache Directory Studio mit folgenden Einstellungen verbinde, funktioniert alles problemlos:
Edit Abt: Bilder-Links entfernt.

Es muss sich also um ein Library- oder ein API-Benutzungsproblem handeln.
Hat hier jemand einen Tipp, wie ich das zum Laufen bekommen kann?