Bonjour,
dans mon projet je dois importer un certificat pour signer un document XML, mais lorsque je veux utiliser des paramètres de ce certificat, j'ai des gros ralentissements...
Voici un mini-projet pour illustrer mon problème:
Dans ce code très simple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 static void Main() { X509Certificate2 certificate = new X509Certificate2(@"..\..\monCertif.p12", "monMotDePasse"); AsymmetricAlgorithm test; MessageBox.Show("avant assignation"); test = certificate.PrivateKey; MessageBox.Show("après assignation"); }
-Je créé un objet X509Certificate2 depuis un certificat local (pas de problèmes)
-J'assigne à un objet 'test' de type AsymmetricAlgorithm la clef privé du certificat. (Et là, cette ligne prend presque 10secondes).
J'ai remarqué en utilisant wireshark que lorsque cette ligne (test = certificate.PrivateKey) est lancée:
-mon PC lance une requête de type "SMB_NETLOGON" au serveur du domaine (SAM LOGON request from client).
-Le domaine répond à mon pc une requête "SMB_NETLOGON" (SAM active directory response - user unknown)
Cet échange est refait une seconde fois, puis la ligne est passée.
À noter:
-Je n'ai pas d'erreurs ni d'exceptions, le programme continu ensuite normalement et sans problèmes (pour tout ce qui ne touche pas à la manipulation du certificat...), et l'objet "test" à bien tous les attributs de la clef privé du certificat.
-Sur le PC d'un de mes collègues (qui es dans le même réseau), le traitement est instantané (ce qui veut dire assurément que le certificat est valide).
Ma configuration:
-Windows XP Pro service pack 3
-Visual Studio 2010
-Framework 4.0
Donc, ma question: quelles raisons peuvent pousser le système à chercher l'authentification sur le domaine dans le cadre d'un passage de références?
Merci d'avance pour toute aide/idées.
Arnaud DS
Partager