Я использую 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
, о котором я говорил выше. Или к базе данных файлов можно получить доступ только через мое приложение.
Код отлично работает при создании таблиц, вставке, удалении и т. Д. Однако я хочу защитить файл.
Извините за плохойанглийский. И заранее спасибо. Если у вас есть другие предложения или ссылки для решения, я ценю это.