C# 如何在Winforms应用程序中使用证书对用户进行身份验证?

C# 如何在Winforms应用程序中使用证书对用户进行身份验证?,c#,sql-server,certificate,azure-sql-database,x509,C#,Sql Server,Certificate,Azure Sql Database,X509,我有一个Winforms应用程序,可以连接到本地SQL Server和Azure DB实例。它是多租户的,我想在主机pc上使用证书和密码组合来验证用户 也就是说,用户需要同时拥有证书和密码才能访问数据库 我打算使用SQL Server/Azure DB的列级加密来保护数据和行级安全,以隔离租户 将通过Active Directory中的用户SID访问行数据 实现这一目标的最佳方式是什么?这是一个好的做法吗?首先:欢迎来到StackOverflow 您的问题显然需要一个体系结构解决方案。 您可能需

我有一个Winforms应用程序,可以连接到本地SQL Server和Azure DB实例。它是多租户的,我想在主机pc上使用证书和密码组合来验证用户

也就是说,用户需要同时拥有证书和密码才能访问数据库

我打算使用SQL Server/Azure DB的列级加密来保护数据和行级安全,以隔离租户

将通过Active Directory中的用户SID访问行数据


实现这一目标的最佳方式是什么?这是一个好的做法吗?

首先:欢迎来到StackOverflow

您的问题显然需要一个体系结构解决方案。 您可能需要研究一个名为的模式。 StrategyPattern很可能适合您的方法,因为您可以将应用程序设计为有两个类来处理数据库访问的身份验证。最简单的设计是使用一个简单的接口(我们称之为
IDatabaseAuthentificator
)。现在,您在某个地方(例如在app.config中)有了一个标志,它决定了应用程序应该使用哪种数据库和哪种身份验证

因此,当您尝试连接到数据库时,您将首先读取
ConnectionString
,然后读取此标志