C# 在UWP应用程序中保护SQLite数据库
它是一个使用C# 在UWP应用程序中保护SQLite数据库,c#,uwp,entity-framework-core,.net-4.6,C#,Uwp,Entity Framework Core,.net 4.6,它是一个使用SQLite数据库的UWP应用程序。下面是此应用程序的依赖项: { "dependencies": { "Microsoft.EntityFrameworkCore.Sqlite": "1.0.1", "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2", "Micr
SQLite
数据库的UWP
应用程序。下面是此应用程序的依赖项:
{
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
"Microsoft.Xaml.Behaviors.Uwp.Managed": "1.1.0",
"Newtonsoft.Json": "8.0.3",
"Template10": "1.1.*"
},
// ...
}
要求是:“[…]拥有从应用程序或任何其他可以打开SQLite
数据库的应用程序访问数据库的密码”
实体框架核心似乎不支持这种情况有什么建议吗?看看SQLCipher()。它提供无缝的全数据库加密,开销很小。构建用于VisualStudio的VSIX是一件痛苦的事情。如果您不想自己构建,您可以从获得许可证。查看SQLCipher()。它提供无缝的全数据库加密,开销很小。构建用于VisualStudio的VSIX是一件痛苦的事情。如果您不想自己构建,您可以从获得许可。有关使用SQLCipher和Microsoft.Data.Sqlite好友的提示,请参阅我的帖子
与EF Core一起使用它的最简单方法可能是使用与DbContext
的开放连接
class MyContext : DbContext
{
SqliteConnection _connection;
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
_connection = new SqliteConnection(_connectionString);
_connection.Open();
var command = _connection.CreateCommand();
command.CommandText = "PRAGMA key = 'password';";
command.ExecuteNonQuery();
options.UseSqlite(_connection);
}
protected override void Dispose()
{
_connection?.Dispose();
}
}
有关使用SQLCipher和Microsoft.Data.Sqlite好友的提示,请参阅我的帖子
与EF Core一起使用它的最简单方法可能是使用与DbContext
的开放连接
class MyContext : DbContext
{
SqliteConnection _connection;
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
_connection = new SqliteConnection(_connectionString);
_connection.Open();
var command = _connection.CreateCommand();
command.CommandText = "PRAGMA key = 'password';";
command.ExecuteNonQuery();
options.UseSqlite(_connection);
}
protected override void Dispose()
{
_connection?.Dispose();
}
}
我发现SQLite社区认为构建自己的是最好的。然后指定所需的确切功能和配置。但是有一些二进制文件。(在UWP上可能不起作用)真正令人失望的是@bricelam专注于我们通常免费创建的应用程序,在不浪费金钱和时间的情况下保护我们创建的数据是不可能的。我怀念SQL Compact的日子。我也怀念SQL Compact。我发现SQLite社区认为构建自己的是最好的。然后指定所需的确切功能和配置。但是有一些二进制文件。(在UWP上可能不起作用)真正令人失望的是@bricelam专注于我们通常免费创建的应用程序,在不浪费金钱和时间的情况下保护我们创建的数据是不可能的。我怀念SQL Compact的日子,我也怀念SQL Compact。