Codeby web-security - новый курс от Codeby Security School

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...


Cоздание файла App.Config c элементом connectionStrings

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

Создание и добавление файла App.Config

Чтобы создать конфигурационный файл необходимо выполнить несколько простых действий:

1. Перейдите в окно Solution Explorer

2. Нажмите правую кнопку мыши на имени текущего проекта

3. В появившемся контекстном меню выберите пункт Add, появиться дополнительное подменю, нажмите на пункт New Item.

добавление нового элемента

4. Откроется диалоговое окно со списком шаблонов. Найдите шаблон с именем Application Configuration File, если требуется, измените, имя файла, после чего нажмите на кнопку Add.

выбор шаблона

В Solution Explorer появится добавленный файл App.Config.

файл App.Config

Открываем добавленный файл, щелкнув по нему двойным кликом мыши в окне Solution Explorer.

открытый файл App.config

Файл App.Config это обычный XML файл, внутри которого по умолчанию содержится строка декларации и один корневой элемент configuration. Сам же файл конфигурации, опять же по умолчанию, хранится в папке текущего проекта.

папка проекта

Если вы не знаете, что такое XML и как с ним работать, то прочитайте статью: Введение в язык XML, в которой вкратце изложены все основные моменты.

Создание и добавление элемента connectionStrings

Создадим новый элемент connectionStrings. Для этого сначала введите знак меньше ().

добавление элемента connectionStrings

Внутри созданного элемента создадим ещё один элемент с именем add

меню авто подстановки

новый добавленный элемент

Для данного элемента добавим несколько атрибутов. Чтобы добавить атрибут нажмите на клавишу пробел после слова add, появится меню авто подстановки.

список доступных атрибутов

Выберите атрибут name и нажмите на клавишу Enter

создание атрибута name

Внутри двойных кавычек укажите любое имя, например MysqlConStr.

установка значения для элемента name

Затем добавьте следующий атрибут connectionString

атрибут connectionString

Внутри двойных кавычек нужно указать строку подключения, которая состоит из пары: ключ = значение.

Обязательные ключи:

Server указываем ip адрес или имя сервера, где лежит база данных MySQL. Предпочтительнее указывать ip адрес.

Database — имя базы данных;

Uid — пользователь;

Pwd — пароль;

Каждый пара отделяется точкой запятой, а для установки значения используется знак равно.

connectionString="Server=ip; DataBase=имяБД; Uid=логин; Pwd=пароль;"

строка подключения


Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


Строка подключения может содержать множество других ключей, например:

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

"Server=ip; DataBase=имяБД; Uid=логин; Pwd=пароль; Port=1034;"

SslMode если при работе с базой данных вы хотите использовать безопасное соединение с сервером, то укажите для данного параметра одно из следующих значений:

Preferred если сервер поддерживает SSL (криптографический протокол, который обеспечивает безопасность связи) то будет установлено безопасное соединение, если нет, то обычное.

Required все подключения будут только через протокол ssl. Если же на сервере нет поддержки ssl, то при обычном подключении вы получите отказ в подключении к серверу.

 ...; SslMode=Preferred;"

Все остальные ключи и их описание можно найти на официальном сайте MySQL.

После добавления строки подключения, добавим ещё один атрибут providerName, который будет хранить имя поставщика данных.

providerName = "MySql.Data.MySqlClient"

поставщик услуг

полное содержимое файла App.Config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="MySQLConStr" connectionString="Server=127.0.0.1;
DataBase=mytest;
Uid=adminbd;
Pwd=123;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
</configuration>

Таким же образом можно указать любое количество строк подключения и поставщиков данных к разным базам данных: MSSQL, Oracle, Access, например:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="MySQL" connectionString="Server=127.0.0.1;
DataBase=mytest;
Uid=adminbd;
Pwd=123;"
providerName="MySql.Data.MySqlClient"/>
<add name="Access" connectionString="..."  providerName="..."/>
<add name="MSSQL" connectionString="..."  providerName="..."/>
 </connectionStrings>
</configuration>

Ещё одним преимуществом файлов конфигурации, является быстрое изменение данных, которое не требует перекомпиляции проекта, ведь достаточно всего лишь внести изменения в файл XML, который является отдельным файлом.

Получение данных из файла конфигурации

Конфигурационный файл создан и теперь осталось научиться читать данные из файла App.Config.

Для начала нужно подключить в проект сборку (dll файл) System.Configuration;

добавление сборки в проект

диалоговое окно выбора сборки

добавленная сборка

2. Чтобы при написании кода обращаться к типам и членам, не используя полных имен, добавьте следующую строку:

using System.Configuration;

В предыдущей статье строка подключения была создана при помощи объекта типа MySqlConnectionStringBuilder (полный исходник здесь)

MySqlConnectionStringBuilder mysqlCSB;
mysqlCSB = new MySqlConnectionStringBuilder();
mysqlCSB.Server = "127.0.0.1";
mysqlCSB.Database = "mytest";
mysqlCSB.UserID = "adminbd";
mysqlCSB.Password = "123";

Удалим весь блок кода, а так же строку

con.ConnectionString = mysqlCSB.ConnectionString;

Затем напишем следующий код:

ConnectionStringSettings conString;
conString = ConfigurationManager.ConnectionStrings["MySQLConStr"];

В квадратных скобках указываем значение атрибута name элемента add. В результате в объекте conString мы получаем все значения элементов и атрибутов файла App.Config.

И последнее, что осталось сделать, это передать в объект MySqlConnection созданную строку подключения.

было

using (MySqlConnection con = new MySqlConnection(mysqlCSB.ConnectionString))

стало

using (MySqlConnection con = new MySqlConnection(conString.ConnectionString))

Либо можно сразу же не создавая объект ConnectionStringSettings передать в конструктор класса MySqlConnection конструкцию следующего вида:

СonfigurationManager.ConnectionStrings["MySQLConStr"].ConnectionString;

Видео

Читайте также:


Codeby Market от Сodeby

Мы запустили свой магазин CodebyMarket Equipment for InfoSec. Уже добавили RaspberryAlfa Long-RangeOrange PiArduino и многое другое. Купить Pentesting Devices