Как использовать сертификат в приложении Winforms для аутентификации пользователя?

#c# #sql-server #certificate #azure-sql-database #x509

#c# #sql-сервер #сертификат #azure-sql-database #x509

Вопрос:

У меня есть приложение Winforms, которое подключается как к локальному SQL Server, так и к экземплярам Azure DB. Он многопользовательский, и я хочу использовать комбинацию сертификата и пароля на главном компьютере для аутентификации пользователя.

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

Я намерен использовать шифрование на уровне столбцов с SQL Server / Azure DB для защиты данных и безопасность на уровне строк для изоляции клиентов.

Доступ к данным строки будет осуществляться через SID пользователя из Active Directory.

Каков наилучший способ достижения этого? Является ли это хорошей практикой?

Ответ №1:

Во-первых: добро пожаловать в StackOverflow

Ваша проблема явно нуждается в архитектурном решении. Возможно, вам захочется изучить шаблон под названием StrategyPattern. StrategyPattern, скорее всего, подойдет вашему подходу, потому что вы можете спроектировать свое приложение так, чтобы в нем было два класса, которые обрабатывают аутентификацию для вашего доступа к базе данных. Самым простым дизайном было бы использование простого интерфейса (назовем его IDatabaseAuthentificator ). Теперь у вас где-то есть флаг (например, в app.config), который определяет, какую базу данных и какой тип аутентификации должно использовать приложение.

Поэтому, когда вы пытаетесь подключиться к базе данных, вы сначала прочитаете ConnectionString , а затем этот флаг.