Comment utiliser le certificat de rappel dans SslStream.AuthenticateAsClient méthode?

Mon C#.NET connexion SSL fonctionne quand je importer le certificat manuellement dans IE (Outils/Options Internet/Contenu/Certificats), mais comment puis-je charger le certificat par le code?
Voici mon code:

TcpClient client = new TcpClient(ConfigManager.SSLSwitchIP, Convert.ToInt32(ConfigManager.SSLSwitchPort));

SslStream sslStream = new SslStream(
                client.GetStream(),
                false,
                new RemoteCertificateValidationCallback(ValidateServerCertificate),
                null
                );
sslStream.AuthenticateAsClient("Test");

Le code ci-dessus fonctionne très bien si je importer mon fichier de certificat manuellement dans Internet Explorer. Mais si je retirer mon certificat d'IE et d'utiliser le code suivant à la place, j'obtiens l'Authentification exception:

sslStream.AuthenticateAsClient("Test", GetX509CertificateCollection(), SslProtocols.Default, false);

et ici est le " GetX509CertificateCollection méthode :

public static X509CertificateCollection GetX509CertificateCollection()
        {
            X509Certificate2 certificate1 = new X509Certificate2("c:\\ssl.txt");
            X509CertificateCollection collection1 = new X509CertificateCollection();
            collection1.Add(certificate1);
            return collection1;
        }

Que dois-je faire pour charger mon certificat dynamiquement?

OriginalL'auteur losingsleeep | 2012-09-29