【问题标题】:Protect SQLite database used by EntityFramework Core Application保护 EntityFramework Core Application 使用的 SQLite 数据库
【发布时间】:2016-05-05 18:08:03
【问题描述】:

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

我阅读了官方文档并且我的测试应用程序有效。

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

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

我不明白这是否可能。

感谢您的帮助,

恩里科

【问题讨论】:

    标签: c# sqlite entity-framework-core


    【解决方案1】:

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

    在 EFCore 中使用 SQLite 加密 (SQLCiher) 数据库的步骤

    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下载工作示例

    【讨论】:

    • 我有 xamarin 表单应用程序,我尝试了您的方法,但它不起作用。创建数据库时出现此错误:SQLite 错误 1:'无法回滚 - 没有事务处于活动状态'。你能帮我吗?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      看看it

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-14
        • 2012-08-08
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        相关资源
        最近更新 更多