использовать файл app.config для строки подключения и абстрагировать ее от пользователей - PullRequest
0 голосов
/ 26 июня 2011

Я использовал файл app.config для своего приложения winform, этот файл используется для хранения строки подключения, которая используется всеми формами в моем приложении для подключения к удаленной базе данных MySQL.

Но когдаЯ устанавливаю приложение на компьютеры моих клиентов, затем хочу, чтобы они не могли видеть файл app.config.Является ли это возможным?Как?Пожалуйста, помогите с кодом.

Кроме того, есть ли другой способ, чтобы создать строку подключения, которая доступна для всех форм.Мол, могу ли я создать класс connection.cs и затем наследовать его в каждой форме.Но как это сделать?Я имею в виду, как реализовать код

Моя главная цель - создать только одну строку для соединения, чтобы, если я изменяю ее снова и снова, мне не нужно идти и менять ее в каждой форме, вместо этого яизменил бы его только в одном файле, и он был бы использован всеми формами

Является ли использование файла app.config хорошим вариантом или создание файла connection.cs лучшим?

Ответы [ 5 ]

2 голосов
/ 26 июня 2011

Вам не нужно использовать строку подключения из каждой формы, вам нужен уровень доступа к данным, а затем вы используете его повсюду, теоретически только из другого уровня, называемого бизнес-логикой ...

Форма, которая должна загружать данные в сетку, раскрывающийся список или некоторые другие элементы управления, должна использовать данные, загруженные нижними уровнями в стеке приложения.

Прочтите что-нибудь о трехуровневой архитектуре.

1 голос
/ 26 июня 2011

Если вам просто нужны простые решения, почему бы не создать класс с именем, например, «Соединение», в файле connection.cs и позволить ему иметь статический атрибут или свойство с именем, например, «ConString», которое содержит строку подключения:

public class Connection
{
  public static ConString = "your connection string here";
}

Тогда вы можете получить к нему доступ везде:

OdbcConnection conn = new OdbcConnection(Connection.ConString);

НО это был бы только быстрый и грязный способ сделать это (хотя это работает). Было бы гораздо приятнее создать собственный слой базы данных, но и гораздо больше работы.

1 голос
/ 26 июня 2011

app.config всегда отображается на пользовательском компьютере, поэтому не следует рассматривать любую информацию, хранящуюся в нем, как секретную.

У вас действительно есть два варианта:

  • Продолжайте сохранять строку подключения в app.config, но шифруйте ее.Это будет хорошо работать, если его внутреннее приложение и безопасность не являются большой проблемой.Но поскольку ключ шифрования должен храниться в приложении, его может получить выделенный хакер.

  • использует трехуровневую архитектуру, как уже предлагалось.При этом строка подключения сохраняется на среднем уровне, в то время как ваше приложение больше не подключается напрямую к базе данных, а через средний уровень.Аутентификация может быть выполнена с использованием имени пользователя / пароля для каждого пользователя или с использованием аутентификации Windows.Строка подключения хранится на сервере, и только люди, имеющие доступ к этому серверу, могут просматривать ее и видеть строку подключения к БД.

0 голосов
/ 29 апреля 2014

Попробуйте определить строку подключения в program.cs до [statThread], сохранив ее в общедоступной статической строковой переменной, такой как constr и т. Д. Затем вы можете использовать эту переменную в любом месте, ссылаясь на: program.constr

0 голосов
/ 26 июня 2011

App.config не может быть скрыт на компьютере пользователя, это то, что вы можете сделать.Вы можете зашифровать строку подключения и сохранить ее в app.config.посмотрите на эту статью , она показывает вам, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...