Как включить шифрование базы данных MS-SQL Compact при первом запуске программы при использовании ее с Entity Framework? - PullRequest
0 голосов
/ 29 сентября 2010

ОК, вот сценарий:

Я кодирую приложение .NET 3.5 WPF, используя Microsoft Entity Framework, чтобы использовать компактный файл базы данных (.sdf) для хранения данных. При первом запуске моей программы компьютерный ключ шифрования вычисляется и сохраняется в реестре, и мой sdf-файл должен зашифровываться с помощью этого ключа (или, скорее, с каким-то хешированным вариантом этого ключа).

Моя текущая проблема

  1. Как мне зашифровать мой (до сих пор незашифрованный) sdf-файл сгенерированным паролем?
  2. Как я могу сказать ModelContainer Entity Framework использовать этот пароль для подключения к базе данных вместо строки подключения в app.config, где пароль не сохраняется?

Я попытался очистить все строки подключения и создать новую с паролем при запуске, но получаю исключение, что моя конфигурация доступна только для чтения.

Любые идеи с благодарностью: -)

1 Ответ

1 голос
/ 30 сентября 2010

Чтобы изменить базу данных с незащищенной на защищенную, необходимо использовать метод SqlCeEngine Compact (в провайдере System.Data.SqlServerCe ADO.NET)

Чтобы изменить строку подключения, см .:SQL CE 3.5 и EntityFramework

SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
engine.Compact("Data Source=; Password =a@3!7f$dQ;");
...