ASP MVC 应用程序中的列加密与 SQL Server 2016 使用 .net Core / EF Core

Column encryption in ASP MVC app with SQL Server 2016 using .net Core / EF Core

我正在尝试使用 SQL Server 2016 中的 "Always Encrypted" 功能来加密某些列。我使用 this post 作为指南,将列设置为在 SSDT 中加密。

这部分没问题,但当我尝试从应用程序查询数据时出现错误。根据我需要添加的文档:

column encryption setting=enabled

到我的连接字符串。 Entity Framework Core 似乎不支持此功能。我收到此错误:

column encryption setting=enabled is not supported

我也尝试使用 SqlConnectionStringBuilder 构建字符串,但无法添加该设置。它似乎存在于 .NET 4.6 中。

那么,有人知道使用 Always Encrypted 从 .NET Core 应用程序连接到 SQL 服务器实例的方法吗?

.Net Core 目前不支持 Always Encrypted

您可以找到支持的框架列表 here

添加对 .NET Core 的支持在我们的路线图上,我们还没有时间表

请关注this github issue更新

正如 MS 人员所提到的 - Always Encrypted 目前在 .Net Core 上不受支持。

  • 我们遇到了同样的情况,最后我们不得不让 Core WebApp 以 .NET Full Framework 为目标,没有其他选择。

  • 即,目前与 netcoreapp1.1 (.NETCoreApp,Version=v1.1) 不兼容 兼容net452 (.NETFramework,Version=v4.5.2)

  • 来自论坛 - "Eventhough EF Core could work for AE feature, but still the underlying .NET Core SQL Client currently does not support for AE, and it will be in their (MS + Opensource ontributors) future mile stone to support it"

请参阅此 GitHub page 以了解关于此问题的任何最新更新:

Microsoft SQL 服务器的 .NET Core 3.0 Preview 5 through the new Microsoft.Data.SqlClient 数据提供程序现在支持 Always Encrypted。

只是提到here

Microsoft.data.sqlclient

从 .net Core 3.1 开始支持。 我在生产场景中有 运行 请参阅我对这个 Whosebug 问题的回答(使用 EFCore 和 Azure KeyVault):