gpt4 book ai didi

c# - 将密码添加到 Xamarin 表单中的 Sqlite 文件

转载 作者:IT王子 更新时间:2023-10-29 06:21:53 25 4
gpt4 key购买 nike

我有一个创建 Sqlite 数据库的 Xamarin 表单应用程序。

Microsoft.EntityFrameworkCore.Sqlite 用于创建数据库。我想为文件添加密码。我搜索了互联网,但不幸的是我找不到任何明显的方法。在 StackOverflow 上,有一些问题与我的问题类似,但是平台不是 Xamarin Forms。

问题如下:

这是我创建数据库的代码:

public class DoctorDatabaseContext : DbContext
{
private readonly string DatabasePath;

public virtual DbSet<OperationsNames> OperationsNames { get; set; }
public virtual DbSet<CommonChiefComplaint> CommonChiefComplaint { get; set; }
public virtual DbSet<CommonDiagnosis> CommonDiagnosis { get; set; }
public virtual DbSet<CommonLabTests> CommonLabTests { get; set; }

public DoctorDatabaseContext(string DatabasePath)
{
FixedDatabasePath.Path = this.DatabasePath = DatabasePath;

Database.EnsureCreated();
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite($"Filename={DatabasePath}");
}
}

最佳答案

我在 Encryption in Microsoft.Data.Sqlite 上写了一篇文章.您可以通过将开放连接传递给 UseSqlite 在 EF Core 中利用它。

代替 Microsoft.EntityFrameworkCore.Sqlite,使用这些包:

  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • SQLitePCLRaw.bundle_sqlcipher

protected override void OnConfiguring(DbContextOptionsBuilder options)
{
// TODO: Dispose with DbContext
_connection = new SqliteConnection(_connectionString);
_connection.Open();

// TODO: Avoid SQL injection (see post)
var command = _connection.CreateCommand();
command.CommandText = "PRAGMA key = '" + _password + "'";
command.ExecuteNonQuery();

options.UseSqlite(_connection);
}

关于c# - 将密码添加到 Xamarin 表单中的 Sqlite 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48976557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com