System.DirectoryServices ist langsam?

Ich verwende den folgenden Code, um Informationen in Active Directory nachzuschlagen, wenn sich ein Benutzer bei einer Website anmeldet. Das Ausführen gegen eine lokale Domäne ist sehr schnell, aber das Ausführen über ein VPN zu einer vertrauenswürdigen Remotedomäne ist sehr langsam (dauert etwa 7 oder 8 Sekunden). Das Ausführen von dsa.msc von derselben Box zur Remotedomäne ist fast so schnell wie das lokale Ausführen.

Ich verwende die Eigenschaftsfilterung, um die geringstmögliche Datenmenge abzurufen. Ist also in diesem Szenario etwas an System.DirectoryServices von Natur aus langsam, oder hat jemand Tipps zur Verbesserung der Leistung?

Die Netzwerkverbindung über das VPN ist in Ordnung, nur dieser Code läuft langsam.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var LDAPConnection = new DirectoryEntry("LDAP://domain/dc=domain,dc=com", "username", "password"))
            {
                LDAPConnection.AuthenticationType = AuthenticationTypes.Secure;
                using (DirectorySearcher Searcher = new DirectorySearcher(LDAPConnection))
                {
                    Searcher.Filter = "(&(&(objectclass=user)(objectcategory=person))sAMAccountName=username)";
                    Searcher.PropertiesToLoad.Add("mail");

                    SearchResult result = Searcher.FindOne(); //this line takes ages!

                    string EmailAddress = result.Properties["mail"][0].ToString();
                    Console.WriteLine(EmailAddress);
                }
            }
        }
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage