2010-10-20 4 views
0

Comment utiliser la date actuelle & comme valeur de l'attribut findValue dans la configuration ServiceCertificate lors de l'utilisation de "FindByTimeValid" pour le x509FindType? L'utilisation de DateTime.Now ci-dessous ne fonctionne pas mais ne fonctionne pas non plus "2010-10-20 14: 35: 28Z". J'ai deux certificats sur le serveur avec les mêmes détails que l'un d'entre eux a expiré, c'est pourquoi j'utilise cette valeur de type de recherche.Comment utiliser la date-heure actuelle pour la valeur FindByTimeValid dans WCF ServiceCertificate config

Par exemple:

<serviceCredentials> 
     <serviceCertificate findValue="DateTime.Now" x509FindType="FindByTimeValid" storeLocation="LocalMachine" storeName="My"/> 
</serviceCredentials> 

Edit: je fixe en supprimant le certificat a expiré, mais je suis toujours curieux de savoir si cela est possible.

Merci

Keith

Répondre

0

Comme personne ne semble légèrement intéressé par cette question (2 vues en un mois et je pense au moins un d'entre eux était moi) j'ai décidé de sortir réflecteur et une regardez le processus et avez trouvé ce qui suit.

Dans la méthode X509Certificate2Collection.FindCertInStore(SafeCertStoreHandle safeSourceStoreHandle, X509FindType findType, object findValue, bool validOnly) de l'assemblage System.ServiceModel nous avons le code suivant

case X509FindType.FindByTimeValid: 
if (findValue.GetType() != typeof(DateTime)) 
{ 
    throw new CryptographicException(SR.GetString("Cryptography_X509_InvalidFindValue")); 
} 

Comme vous pouvez le voir sur la signature du findValue vient comme un objet que je pense est à son tour chargé par la configuration analyseur comme une chaîne qui signifie que cela ne fonctionnera jamais.

Donc la réponse est que vous ne pouvez pas le faire en utilisant la configuration XML, mais vous pouvez le faire si vous le faites par programmation.

Questions connexes