Sqlite-net-pcl, использующий шифрование, не работает - PullRequest
0 голосов
/ 19 октября 2019

Я использую nuget пакет sqlite-net-pcl в своем приложении .Net Standard Library, однако, когда я пытаюсь добавить пароль ( key ) к моему SQLiteConnectionStringКажется, это не работает. Потому что я могу получить доступ к файлу через SQLite Manager без указания пароля. Как это исправить?

Я скопировал и вставил пример из Github репозитория (последний раздел) в мое приложение. Это сводка моего кода.

public class SQLiteDatabaseConnection
    {
        public SQLiteConnectionString SqliteConnectionString { get; private set; }
        public SQLiteAsyncConnection SqliteConnection { get; private set; }

        public SQLiteDatabaseConnection(string pathDirectory = null, string name = "my_database", string key = null)
        {
            string directory = pathDirectory ?? Environment.CurrentDirectory;
            string databasePath = Path.Combine(directory, $"{name}.sqlite3");

            this.SqliteConnectionString = new SQLiteConnectionString(databasePath, true, key: key);
            this.SqliteConnection = new SQLiteAsyncConnection(this.SqliteConnectionString) ?? throw new ArgumentNullException(nameof(this.SqliteConnection));
        }
    }

И в моем репозитории я создал экземпляр SQLiteDatabaseConnection

 string path = Environment.CurrentDirectory;
 SQLiteDatabaseConnection connection = new SQLiteDatabaseConnection(path, "database_test", "my_password");
 _repository = new RepositoryWrapper(connection);

Я ожидаю, что database_test.sqlite3 не может быть доступа с любого SQLite Manager, о котором я говорил выше. Или к базе данных файлов можно получить доступ только через мое приложение.

Код отлично работает при создании таблиц, вставке, удалении и т. Д. Однако я хочу защитить файл.

Извините за плохойанглийский. И заранее спасибо. Если у вас есть другие предложения или ссылки для решения, я ценю это.

...