保护EntityFramework核心应用程序使用的SQLite数据库
我正在尝试使用EntityFramework Core 1.0(EntityFramework 7的新名称)来管理C#Desktop应用程序中的SQLite数据库。
我阅读官方文档和我的测试应用程序。
我的问题是:密码保护数据库是否可能?
我知道有很多方法可以做到这一点,它也存在允许这样做的.NET类System.Data.SQLite,但是如何使用EFCore 1呢?
我无法理解是否有可能。
感谢帮助,
恩里科
使用EntityFramework Core 2.0(EFCore 2.0),可以使用加密的SQLite数据库。
将SQLite加密(SQLCiher)数据库与EFCore一起使用的步骤
-
在项目中添加Microsoft.EntityFrameworkCore.Design的引用。
-
添加Microsoft.EntityFrameworkCore.Sqlite.Core的引用。 这是非常重要的一步。 不要添加Microsoft.EntityFrameworkCore.Sqlite的引用。 否则它将无法工作。
-
添加SQLitePCLRaw.bundle_sqlcipher的引用。 对于加密,它是必需的。 添加以下行ExcludeAssets =“All”很重要,否则它将无效。 有关详细信息,请参阅以下链接http://www.bricelam.net/2016/06/13/sqlite-encryption.html
从Github下载工作示例
EF Core使用Microsoft.Data.Sqlite,它目前不支持开箱即用的加密。 请参阅https://github.com/aspnet/Microsoft.Data.Sqlite/issues/184 。 您可以使用SQLite扩展自己添加加密。
这篇文章有点旧,但我找到了解决这个问题的方法。
看一看。