System.DirectoryServices é lento?

Eu estou usando o código abaixo para procurar informações no diretório ativo quando um usuário faz logon em um site. Correr contra um domínio local é muito rápido, mas ao executar uma VPN em um domínio confiável remoto, é muito lento (leva cerca de 7 ou 8 segundos). Executar o dsa.msc da mesma caixa para o domínio remoto é quase tão rápido quanto executá-lo localmente.

Estou usando a filtragem de propriedades para recuperar a quantidade mínima de dados possível. Portanto, há algo inerentemente lento sobre System.DirectoryServices nesse cenário, ou alguém tem alguma dica sobre como melhorar o desempenho?

A conexão de rede através da VPN é boa, é apenas esse código que é executado lentamente.

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);
                }
            }
        }
    }
}

questionAnswers(2)

yourAnswerToTheQuestion