2016-09-29 7 views
0

SQLite 데이터베이스를 사용하는 응용 프로그램은 UWP입니다. 다음은이 응용 프로그램의 종속성UWP 응용 프로그램에서 SQLite 데이터베이스 보호

{ 
    "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 데이터베이스를 열 수있는 응용 프로그램이나 다른 응용 프로그램에서 데이터베이스 중 하나에 액세스 할 수있는 암호를하는" .

Entity Framework Core가이 시나리오를 지원하지 않는 것 같습니다. 제안이 있으십니까?

답변

1

SQLCipher 및 친구들과 Microsoft.Data.Sqlite를 함께 사용하는 방법에 대한 팁은 Encryption in Microsoft.Data.Sqlite 게시물을 참조하십시오.

EF 코어와 함께 사용하는 가장 쉬운 방법은 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(); 
    } 
} 
+0

왜 내가 이미 컴파일 된 라이브러리를 찾을 수 없습니까? –

+0

SQLite 커뮤니티가 자신 만의 건물을 만드는 것이 가장 좋다고 생각했습니다. 그런 다음 원하는 기능과 구성을 지정하십시오. 그러나 [wxSQLite3] (https://github.com/utelle/wxsqlite3/releases)에는 몇 가지 바이너리가 있습니다. (UWP에서는 작동하지 않을 수도 있습니다.) – bricelam

+0

우리는 대개 무료로 제작하는 앱에 집중하는 실망스러운 @bricelam입니다. 우리가 만드는 데이터를 보호하는 것은 돈과 시간 낭비없이 가능하지 않습니다. SQL Compact의 시대가 그리워요. –