自EF Core 2.1起,尚不支持Always Encrypted SQL Server功能。
我正在使用SQL Server 2016和Azure SQL,并且所有客户端都是基于Windows的。
答案 0 :(得分:1)
不要扮演自己的实施角色。我们最终要做的是在我们的解决方案中创建一个单独的Windows Classic Desktop类库项目,该项目处理具有加密列的表的数据层。在该项目中,我们将Dapper用于ORM,它支持加密列。确实限制了我们可以做的某些事情,因为数据层的其余部分是通过EF Core进行的,但是它可以正常工作。
由于您使用的是Azure SQL,因此我还建议您使用Microsoft Azure密钥保管库存储列主密钥。请参阅NuGet程序包Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider。 .NET Core也不支持此NuGet程序包。
答案 1 :(得分:1)
.Net Core 3.1现在支持此功能,在较低版本上,您将很难实现它,也可以在此处查看有关在.Net Core 3.1上实现它的答案: SQL Server Always Encrypted with .NET Core not compatible
请参阅此github问题/评论 https://github.com/dotnet/SqlClient/issues/11#issuecomment-520100830
要澄清一下:Microsoft.Data.SqlClient应该在.Net Core 3.1上使用