保护EntityFramework核心应用程序

时间:2016-01-28 11:27:09

标签: c# sqlite entity-framework-core

我尝试使用EntityFramework Core 1.0(EntityFramework 7的新名称)来管理C#Desktop应用程序中的SQLite数据库。

我阅读官方文档和我的测试应用程序。

我的问题是:是否可以对数据库进行密码保护?

我知道有很多方法可以做到,它还存在允许这样做的.NET类System.Data.SQLite,但是如何使用EFCore 1来做呢?

我无法理解是否有可能。

感谢您的帮助,

恩里科

3 个答案:

答案 0 :(得分:5)

使用EntityFramework Core 2.0(EFCore 2.0),可以使用加密的SQLite数据库。

将SQLite加密(SQLCiher)数据库与EFCore一起使用的步骤

  1. 在您的。中添加Microsoft.EntityFrameworkCore.Design的引用 项目。

  2. 添加引用 Microsoft.EntityFrameworkCore.Sqlite.Core。这非常重要 步。不要添加引用 Microsoft.EntityFrameworkCore.Sqlite。否则它将无效。

  3. 添加SQLitePCLRaw.bundle_sqlcipher的引用。用于加密 这是必需的。添加以下行ExcludeAssets =" All"是 重要,否则它将无法正常工作。有关详细信息,请参阅以下链接 http://www.bricelam.net/2016/06/13/sqlite-encryption.html

    Github

  4. 下载工作示例

答案 1 :(得分:2)

EF Core使用Microsoft.Data.Sqlite,它目前不支持开箱即用的加密。见https://github.com/aspnet/Microsoft.Data.Sqlite/issues/184。您可以使用SQLite扩展自己添加加密。

答案 2 :(得分:-1)

这篇文章有点陈旧,但我找到了解决这个问题的方法。

看看it