Il numero di serie del certificato è una chiave univoca per il certificato X509? L'utente seleziona un certificato e il programma memorizza il numero di serie nelle preferenze. Il seguente codice restituisce il certificato selezionato?Il numero di serie è una chiave univoca per il certificato X509?
public static X509Certificate2 GetCertificateBySerialNumber(string serialNumber)
{
X509Certificate2 selectedCertificate = null;
X509Store store = null;
try
{
// get certificate from the store "My", "CurrentUser"
store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection allCertificates = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection foundCertificates = (X509Certificate2Collection)allCertificates.Find(X509FindType.FindBySerialNumber, serialNumber, false);
// select the first certificate in collection
foreach (X509Certificate2 certificate in foundCertificates)
{
selectedCertificate = certificate;
break;
}
}
finally
{
if (store != null)
{
store.Close();
}
}
return selectedCertificate;
}
UPDATE: ho finito di usare i certificati identificazione personale, come suggerito da jglouie.
Thumbnail ≠ Thumbprint –
Aggiornato: usare identificazione personale. – isobretatel