Mds.Libraries.CSharp.Tools 2.1.0.17633-beta.146636

Mds.Libraries.CSharp.Tools

Пакет с общими средствами для разработки.

Содержит набор инструментов для разработки:

  • хелпер для работы с сертификатами;

Сервис для работы с сертификатами

Для работы сертификатами используется интерфейс ICertificateHelpers.

Подключение


// Autofac
builder.AddCertificateHelpers();

// DependencyInjection
services.AddCertificateHelpers();

Использование

Основное назначение ICertificateHelpers для работы с сертификатами и проверки удаленных TLS сертификатов.

Например, проверка удаленных сертификатов для Managed баз данных.

Необходимо использовать Singleton обработчик (например, ICertificateManager), в котором будет вызван ICertificateHelpers. Использование обработчика гарантирует нормальное кеширование ISerrviceProvider внутри DbContext.


public class SqlContext: DbContext
{
    // ...

    private readonly ICertificateManager _manager = /*...*/;

    // ...


    public SqlContext(ICertificateManager manager)
    {
        _manager = manager;
    }
    
    // ...


    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);

        optionsBuilder.UseNpgsql(_connectionString, builder =>
        {
            if (default == _credentials)
            {
                return;
            }

            builder.RemoteCertificateValidationCallback(_manager.CertificateValidationCallback);
        });
    }

    // ...
}
    

Выносим проверку сертификата в отдельный класс.


public interface ICertificateManager 
{
    bool CertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors);
}

internal class CertificateManager: ICertificateManager
{
    private readonly ICertificateHelpers _certificateHelpers;

    public CertificateManager(ICertificateHelpers certificateHelpers)
    {
        _certificateHelpers = certificateHelpers;
    }


    #region ICertificateManager

    bool ICertificateManager.CertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        var path = /*...*/;
        var password = /*...*/;

        return _certificateHelpers.CheckCertificate(path, password, chain, sslPolicyErrors);
    }

    #endregion ICertificateManager
}

Не забываем разрегать ьнаш сервис в DI. Обязательно AddSingleton.


IServiceCollection services = /*...*/;

services.AddSingleton<ICertificateManager, CertificateManager>();

Showing the top 20 packages that depend on Mds.Libraries.CSharp.Tools.

Packages Downloads
Mds.Libraries.CSharp.Extensions
Пакет с расширениями стандартных типов.
1
Mds.Libraries.CSharp.Extensions
Пакет с расширениями стандартных типов.
2
Mds.Libraries.CSharp.Extensions
Пакет с расширениями стандартных типов.
3
Mds.Libraries.CSharp.Server
Package with tools for server from MedvedStudio.
1
Mds.Libraries.CSharp.Server
Package with tools for server from MedvedStudio.
3

Version Downloads Last updated
2.1.0.17633-beta.146636 1 02/28/2026
2.1.0 1 02/28/2026
2.0.1 2 02/28/2026
2.0.1-beta.141976 1 02/28/2026
2.0.0 3 02/28/2026
1.1.1 1 02/28/2026
1.0.1 1 02/28/2026
1.0.0.8616 1 02/28/2026
1.0.0 1 02/28/2026