У меня есть ConnectionString
, определенный в файле App.config
, и я отмечаю опцию, чтобы не включать конфиденциальные данные, чтобы пароль не входил в строку подключения.В коде приложения я использую Entity Framework и обращаюсь к БД следующим образом:
using (var db = new Entities())
{
List<DATA> d = db.DATA.ToList();
}
Я хочу аутентифицировать пользователя по паролю БД - пользователь вводит его при запуске приложения.Вопрос в том, как добавить этот пароль в строку подключения, когда я не обрабатываю ConnectionString
вручную в коде?
Дальше я получил это:
ConnectionStringSettings conn = ConfigurationManager.ConnectionStrings["Entities"];
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(conn.ConnectionString);
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(entityBuilder.ProviderConnectionString);
sqlBuilder.Password = "pwd";
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
ConnectionStringSettings newConn = new ConnectionStringSettings("Entities",entityBuilder.ConnectionString);
Но это все еще не работает, и я не могу присвоить новую строку подключения ConfigurationManager.ConnectionStrings
- он говорит, что это значение только для чтения.Как это побороть?