5

我已经使用Always Encrypted和存储在 Azure Key Vault 中的列主密钥加密了 Azure SQL 数据库中的一些列,但是我无法使用实体框架从我的应用程序访问它们。

最近有一篇 MSDN 文章和一篇较早的博客文章解释如何设置 SqlConnection 以将 Always Encrypted 与 Azure Key Vault 一起使用,所以我猜测可以使用接受DbConnection.

问题是我正在使用 a IdentityDbContext,它没有那个构造函数 - 唯一需要 a的构造函数DbConnection也需要 a DbCompiledModel,这超出了我目前的工资等级。

谁能解释如何设置IdentityDbContext使用 Key Vault?

4

1 回答 1

0

似乎 EF 团队有一个使用加密的测试

var connectionStringBuilder = new SqlConnectionStringBuilder(SqlServerTestStore.CreateConnectionString("adventureworks"))
{
    Encrypt = encryptionEnabled
};
var options = new DbContextOptionsBuilder();
options.UseSqlServer(connectionStringBuilder.ConnectionString);

using (var context = new AdventureWorksContext(options.Options))
{
    context.Database.OpenConnection();
    Assert.Equal(ConnectionState.Open, context.Database.GetDbConnection().State);
}

TODO:测试 IdentityDbContext 构造函数公开与 AdventureWorksContext 相同的构造函数。

于 2016-07-04T03:42:29.700 回答