C# Azure CertificateClient в статическом классеC#

Место общения программистов C#
Ответить
Anonymous
 C# Azure CertificateClient в статическом классе

Сообщение Anonymous »

В моем приложении Asp.Net Core мне нужно использовать Azure CertificateClient в вспомогательном классе, чтобы получить некоторые сертификаты во время запуска и использовать их на протяжении всего жизненного цикла приложения. Раньше эти сертификаты хранились в помощнике, который извлекал их с локального компьютера, как показано в следующем примере:

Код: Выделить всё

public static class X509Certificate2Helper
{
private static readonly X509Store x509Store = new X509Store(StoreLocation.LocalMachine);

public static X509Certificate2 FindByFriendlyName(string certificateName)
{
ArgumentException.ThrowIfNullOrWhiteSpace(certificateName);
var certificate = Find(collection => collection.FirstOrDefault(c => c.FriendlyName == certificateName));
return certificate;
}

public static X509Certificate2 FindByThumbprint(string thumbprint)
{
ArgumentException.ThrowIfNullOrWhiteSpace(thumbprint);
var certificate = Find(certificates => certificates.Find(X509FindType.FindByThumbprint, thumbprint, false)
.FirstOrDefault());
return certificate;
}

private static X509Certificate2 Find(Func func)
{

x509Store.Open(OpenFlags.ReadOnly);
var certificates = x509Store.Certificates;
x509Store.Close();
var certificate = func(certificates);

if (certificate == null)
{
throw new InvalidOperationException("Certificate not found");
}

return certificate;
}
}
Проблема с CertificateClient заключается в том, что для подключения требуется URI, который находится в IConfiguration. Поэтому я не могу создать его статический экземпляр, как это было с X509Store. Каким может быть чистое решение для достижения моей цели? Я бы хотел избежать использования внедрения метода для клиента следующим образом:

Код: Выделить всё

public static X509Certificate2 FindByFriendlyName(string certificateName, CertificateClient cliet)
PS: я не могу использовать классическую внедрение зависимостей, поскольку эти сертификаты также используются внешними библиотеками, которые Я не могу изменить, и мне нужен объект X509Certificate2

Подробнее здесь: https://stackoverflow.com/questions/793 ... atic-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»