Как назначить пароль для ConnectionString программно - PullRequest
0 голосов
/ 08 июня 2011

У меня есть 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 - он говорит, что это значение только для чтения.Как это побороть?

1 Ответ

3 голосов
/ 08 июня 2011

Вы не можете назначить ConfigurationManager.ConnectionStrings, потому что это просто отражает ваш App.config, который ваше приложение не может изменить.

Но вы можете указать EF, какую строку подключения использовать:

using (var db = new Entities(entityBuilder.ToString()))  
{                
     List<DATA> d = db.DATA.ToList();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...