Привет всем.
Кто-нибудь подскажите, как можно перебрать все сертификаты в хранилище «MY».
Я знаю как это можно сделать, используя CryptoAPI, но не знаю как это можно сделать на .net.
Здравствуйте, Kurdac, Вы писали:
K>Кто-нибудь подскажите, как можно перебрать все сертификаты в хранилище «MY». K>Я знаю как это можно сделать, используя CryptoAPI, но не знаю как это можно сделать на .net.
Попробуй так:
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select", "Select a certificate from the following list to get information on that certificate", X509SelectionFlag.MultiSelection);
Console.WriteLine("Number of certificates: {0}{1}", scollection.Count, Environment.NewLine);
foreach (X509Certificate2 x509 in scollection)
{
byte[] rawdata = x509.RawData;
Console.WriteLine("Content Type: {0}{1}", x509.SubjectName, Environment.NewLine);
Console.WriteLine("Content Type: {0}{1}", X509Certificate2.GetCertContentType(rawdata), Environment.NewLine);
Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName, Environment.NewLine);
Console.WriteLine("Certificate Verified?: {0}{1}", x509.Verify(), Environment.NewLine);
Console.WriteLine("Simple Name: {0}{1}", x509.GetNameInfo(X509NameType.SimpleName, true), Environment.NewLine);
Console.WriteLine("Signature Algorithm: {0}{1}", x509.SignatureAlgorithm.FriendlyName, Environment.NewLine);
Console.WriteLine("Private Key: {0}{1}", x509.PrivateKey.ToXmlString(false), Environment.NewLine);
Console.WriteLine("Public Key: {0}{1}", x509.PublicKey.Key.ToXmlString(false), Environment.NewLine);
Console.WriteLine("Certificate Archived?: {0}{1}", x509.Archived, Environment.NewLine);
Console.WriteLine("Length of Raw Data: {0}{1}", x509.RawData.Length, Environment.NewLine);
//X509Certificate2UI.DisplayCertificate(x509);
x509.Reset();
}
store.Close();
Re[2]: хранилище сертификатов
От:
Аноним
Дата:
20.05.07 07:08
Оценка:
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select", "Select a certificate from the following list to get information on that certificate", X509SelectionFlag.MultiSelection);
Console.WriteLine("Number of certificates: {0}{1}", scollection.Count, Environment.NewLine);
foreach (X509Certificate2 x509 in scollection)
{
byte[] rawdata = x509.RawData;
Console.WriteLine("Content Type: {0}{1}", x509.SubjectName, Environment.NewLine);
Console.WriteLine("Content Type: {0}{1}", X509Certificate2.GetCertContentType(rawdata), Environment.NewLine);
Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName, Environment.NewLine);
Console.WriteLine("Certificate Verified?: {0}{1}", x509.Verify(), Environment.NewLine);
Console.WriteLine("Simple Name: {0}{1}", x509.GetNameInfo(X509NameType.SimpleName, true), Environment.NewLine);
Console.WriteLine("Signature Algorithm: {0}{1}", x509.SignatureAlgorithm.FriendlyName, Environment.NewLine);
Console.WriteLine("Private Key: {0}{1}", x509.PrivateKey.ToXmlString(false), Environment.NewLine);
Console.WriteLine("Public Key: {0}{1}", x509.PublicKey.Key.ToXmlString(false), Environment.NewLine);
Console.WriteLine("Certificate Archived?: {0}{1}", x509.Archived, Environment.NewLine);
Console.WriteLine("Length of Raw Data: {0}{1}", x509.RawData.Length, Environment.NewLine);
//X509Certificate2UI.DisplayCertificate(x509);
x509.Reset();
}
store.Close();
Спасибо за помощь.
А Вы не знаете, я могу это написать на Borland Developer Studio 2006, там как бы есть C#, или это не то, нужно использовать Microsoft?
Здравствуйте, Аноним, Вы писали:
А>Спасибо за помощь.
Оценка в этом случае еще никому не помешала
А>А Вы не знаете, я могу это написать на Borland Developer Studio 2006, там как бы есть C#, или это не то, нужно использовать Microsoft?
Если Borland Developer Studio 2006 это средство для разработки для .NET и там поддерживается .NET Framework 2 и его FCL (проще говоря таже система типов) то почему нет? Очень даже можно и на Borland Developer Studio 2006.
А>>А Вы не знаете, я могу это написать на Borland Developer Studio 2006, там как бы есть C#, или это не то, нужно использовать Microsoft?
T>Если Borland Developer Studio 2006 это средство для разработки для .NET и там поддерживается .NET Framework 2 и его FCL (проще говоря таже система типов) то почему нет? Очень даже можно и на Borland Developer Studio 2006.
.NET 2.0 там не поддерживается на сколько помню. Только 1.1