¿Cómo valido las credenciales de Active Directory a través de LDAP + SSL?

Estoy tratando de usar el .NET 3.5System.DirectoryServices.AccountManagement espacio de nombres para validar las credenciales de usuario en nuestro servidor LDAP de Active Directorya través de una conexión LDAP cifrada SSL. Aquí está el código de ejemplo:

using (var pc = new PrincipalContext(ContextType.Domain, "sd.example.com:389", "DC=sd,DC=example,DC=com", ContextOptions.Negotiate))
{
    return pc.ValidateCredentials(_username, _password);
}

Este código funciona bien sobre LDAP no seguro (puerto 389), sin embargo prefiero no transmitir una combinación de usuario / pase en texto claro. Pero cuando cambio a LDAP + SSL (puerto 636), obtengo la siguiente excepción:

System.DirectoryServices.Protocols.DirectoryOperationException: The server cannot handle directory requests.
  at System.DirectoryServices.Protocols.ErrorChecking.CheckAndSetLdapError(Int32 error)
  at System.DirectoryServices.Protocols.LdapSessionOptions.FastConcurrentBind()
  at System.DirectoryServices.AccountManagement.CredentialValidator.BindLdap(NetworkCredential creds, ContextOptions contextOptions)
  at System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName, String password)
  at System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password)
  at (my code)

El puerto 636 funciona para otras actividades, como buscar información sin contraseña para esa entrada LDAP / AD ...

UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, _username)

... así que sé que no es la configuración SSL de mi servidor LDAP, ya que funciona sobre SSL para otras búsquedas.

¿Alguien ha conseguido elValidateCredentials(...) ¿Llamar para trabajar sobre SSL? ¿Puedes explicar cómo? ¿O hay otra / mejor manera de validar de forma segura las credenciales de AD / LDAP?

Respuestas a la pregunta(4)

Su respuesta a la pregunta