Конфигурационные файлы.

Задание профиля с помощью командной строки – метод далеко не всегда удобный. Даже при работе с самой командной строкой используется окружение для сохранения настроек, чтобы не задавать их всякий раз и для всякой команды. Что уж говорить о сложных системных службах, свойства которых должны сохраняться не от сеанса к сеансу, а постоянно (в том числе при перезагрузке системы). Вывод прост: профиль необходимо держать в файле, вроде того, что создается по команде "сохранить настройки".

Однако сам подход к хранению профиля в файле, при котором пользователь не может изменять этот файл напрямую, а пользуется "умными" конфигураторами, удобен только в случаях, когда настроек много, а цена ошибки невелика (например, при настройке внешнего вида рабочего стола). В общем случае довольно сложно задать поведение системы на основании описания (часто неявного) свойств того, что эта система должна получать в результате . Иными словами, из описания того, что должно получиться, далеко не всегда можно автоматически сделать вывод, как оно должно получаться.

Конфигурационный файл . Текстовый файл, содержащий настройки какой-нибудь части системы (утилиты, демона и т. п.). Как правило, считывается ею при запуске. Типичный для Linux способ организации профиля .

Одним словом, если есть конфигурационный файл , то должны быть и средства редактирования этого файла. Учитывая, что в Linux реализована высокоразвитая система хранения и переработки (как ручной, так и автоматической) данных в текстовом виде, изобретать какой-то новый формат – все равно что изобретать велосипед. Тем более, что именно текст, разделенный на строки и слова, лучше всего подходит тогда, когда есть четкое деление профиля на объекты управления и их свойства (например, настройки какого-нибудь демона и значения этих настроек). Вдобавок, именно со структурированными текстами отменно управляются текстовые редакторы Linux: Vi, Emacs и др:

Methody@localhost:~ $ cat .vimrc so $VIMRUNTIME/vimrc_example.vim " Some mappings map:wall!^M map! ^O:wall!^M " Tune up set shiftwidth=2 tabstop=8 history=200 viminfo="50 set showmode showmatch showcmd ruler modeline set autoindent ignorecase smartcase set nohlsearch noincsearch set dir=/var/tmp set wildmode=list:longest,full set wildmenu " Colouring syntax on colorscheme desert Пример 12.2. Настройки редактора vim

Вот как выглядит конфигурационный файл для Vim , написанный Мефодием на основе файла, взятого у Гуревича. Легко заметить, что файл состоит из команд режима командной строки Vi с комментариями (в отличие от большинства утилит Linux, в Vi комментарии начинаются на """). Символы " ^O " и " ^M " – это именно соответствующие управляющие символы (вставленные в текстовый файл с помощью " ^V ", см. лекцию 9). Такой конфигурационный файл легко понимать и изменять.

Как уже было замечено, набор переменных окружения составляет особенный профиль , к которому чувствительны все запускаемые программы – в этом его достоинство. Задаются переменные окружения обычно в командном сценарии, который тоже можно рассматривать как конфигурационный файл ). Например, во многих дистрибутивах используется конфигурационный файл .i18n для настройки языковых особенностей клавиатуры, языка вывода сообщений и т. п. 2Обозначение "i18n" происходит от слова " internationalization ", в котором 20 букв, т. е. "i", "n" и 18 букв между ними. :

Methody@localhost:~ $ cat .i18n LANG=ru_RU.KOI8-R LANGUAGE=ru_RU.KOI8-R SYSFONTACM=koi8-r SYSFONT=UniCyr_8x16 DICTIONARY=russian MPAGE="-CKOI8-R" export DICTIONARY MPAGE Пример 12.3. Файл настройки языковых особенностей

Однако хранить настройки специфической программы (не нужные всем остальным) в окружении – не самое удачное решение: синтаксис, задающий переменную окружения , слишком прост (имя_переменной=значение ), а самих переменных становится слишком много, поэтому при просмотре трудно выделить, какая из них к какой группе настроек относится. Если пытаться упаковать все настройки в значение одной переменной, это значение окажется трудночитаемым, и все преимущество текстового формата сойдет на нет. Например, стандартный конфигурационный файл утилиты ls (точнее, только ее цветовых предпочтений) – /etc/DIR_COLORS (его можно подменить личным файлом ~/.dir_colors ) занимает около ста строк вместе с комментариями. Команда ls использует не этот файл, а создаваемую утилитой dircolors переменную LS_COLORS , значение которой – 600-символьная строка без всяких комментариев.

Если профиль слишком велик, держать его в одном конфигурационном файле – значит, доставлять пользователю сомнительное удовольствие разбирать этот файл целиком даже при необходимости внести минимальное изменение. Методов борьбы с неудобочитаемостью несколько. В частности, уже известный по лекции 10 механизм " .d ": файл разделяется на несколько независимых друг от друга файлов так, что редактировать приходится только один из файлов, а программа во время самонастройки считывает все.

Другой способ опирается на то, что изменения , которые пользователь вносит в профиль , как правило, существенно меньше объема всего профиля . Поэтому может быть выгодно хранить все настройки по умолчанию в каком-нибудь файле, менять который вообще не надо, а файл пользовательских настроек использовать как бы "поверх", изменяя профиль в соответствии с ними после того, как выставлен профиль по умолчанию. Дополнительное преимущество такого способа – в том, что пользователь всегда может подглядеть в "большой" файл, чтобы узнать, как оформляется та или иная настройка. Например, утилита updfstab, которая изменяет содержимое /etc/fstab при появлении или удалении съемного дискового носителя (например, лазерного диска), считывает данные из конфигурационного файла /etc/updfstab.conf . Сам этот файл состоит из единственной строки: include /etc/updfstab.conf.default , что приводит к чтению файла с настройками по умолчанию, где задан способ работы со многими съемными устройствами системы. Если администратору нужно как-то изменить поведение updfstab в отношении определенного устройства, он копирует соответствующую группу настроек из updfstab.conf.default в updfstab.conf после строчки include.. . и исправляет их. То, что эти группы настроек читаются дважды, не играет особой роли: чтение коротких файлов выполняется быстро.

Наконец, третий способ сделать конфигурационный файл удобочитаемым - секционирование профиля , когда все настройки разбиваются на группы, каждой группе дается собственное имя, и синтаксис конфигурационного файла проектируется так, чтобы границы групп хорошо различались при просмотре. В сущности, этот способ – предок схемы " .d ", где группе соответствует отдельный файл, однако нередки ситуации, когда разбивать на файлы неудобно (например, если группы не полностью независимы, поэтому может понадобиться редактировать их сразу несколько). Конфигурационный файл утилиты дозвона wvdial , например, секционируется по адресату (провайдеру) плюс отдельная секция "по умолчанию". Сами секции отделяются друг от друга заголовками, заключенными в квадратные скобки:

Root@localhost:~> cat .wvdialrc Modem = /dev/modem Baud = 115200 Init1 = ATZ Init2 = ATQ0 L0 M4 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Auto DNS = on Modem Type = Analog Modem Phone = 0123456 Username = fireman Password = Fire!Fire! TOnline = true Phone = 0246813 Username = cop-120 Password = gimmethegun Force Address=10.0.0.120 Пример 12.4. Секционированный конфигурационный файл

Утилита wvdial обладает высокоразвитым искусственным интеллектом: она самостоятельно догадывается, какой именно тип идентификации используется на сервере. Например, "с той стороны" может оказаться терминал Linux, которому требуется сначала ввести обыкновенное входное имя и пароль, затем надо получить командную строку, запустить на сервере сетевой демон pppd , и только после этого запустить pppd на собственной машине. Другой вариант: pppd на сервере уже запущен, а настройки "Username" и "Password" означают идентификационную информацию протокола CHAP , используемого pppd . Обо всем этом и о многом другом wvdial способна догадаться,так же как wvdialconf умел определять, какое же из устройств является модемом.

Однако на любой искусственный интеллект найдется непостижимая ему жизненная ситуация. На одном из серверов (секция "Dialer hotspace") тоже стоит программа с зачатками искусственного интеллекта, которая тоже пытается определить, каким способом хочет идентифицироваться позвонивший. Оттого эти два кудесника, созвонившись, все ждут, пока кто-нибудь не проявит себя... Помогает настройка TOnline , которая заставляет wvdial немедленно задействовать протокол ppp , на что сервер, подумавши "ах, ppp!", с облегчением запускает pppd . Остается вопрос: почему эта полезная настройка никак не отражена в документации (ее нашел в исходных текстах программы Гуревич)? Не потому ли, что пара wvdialconf-wvdial не по-Linux-овски стремится все делать за пользователя, а стало быть, пользовательская документация для разработчиков этой программы – не главное?

Идею чтения настроек по умолчанию можно развить. Оказывается, бывает удобно, когда описание настройки помещено не в руководство, а непосредственно в конфигурационный файл в виде комментариев. Тогда при изменении этой настройки пользователь сразу видит, что она собой представляет, при этом отпадает необходимость сначала находить строчку в файле, а потом искать ее же в руководстве. Такой распространенный способ оформления называется самодокументированием профиля . Например, файл /etc/man.conf , управляющий работой команды man , оформлен в самодокументированном стиле:

Methody@localhost:~ $ cat /etc/man.conf . . . # NOCACHE keeps man from creating cache pages ("cat pages") # (generally one enables/disable cat page creation by # creating/deleting the directory they would live in – man # never does mkdir) # # NOCACHE # The command "man -a xyzzy" will show all man pages for xyzzy. # When CMP is defined man will try to avoid showing the same # text twice. (But compressed pages compare unequal.) # CMP /usr/bin/cmp -s . . . Пример 12.5. Самодокументированный конфигурационный файл

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

Если пойти еще дальше, то можно создать несколько различных файлов с примерами настроек, чтобы пользователь мог взять один из них и довести до нужного ему состояния. Именно такую – демонстрационную – настройку Мефодий и включил в качестве настройки по умолчанию в свой .vimrc (в первой строке). Кстати, на самом деле профиль Vim весьма сложен, но большинство его настроек по умолчанию находятся в различных файлах дерева каталогов /usr/share/ vim – эдакая "схема .d/.d ", где файлы профиля , соответствующие подгруппам настроек, лежат в подкаталогах, соответствующих группам. Включение определенного настроечного файла может происходить неявно: например, строчка colorscheme desert из .vimrc приводит к чтению /usr/share/ vim /colors/desert. vim .

Конфигурационные файлы могут иметь довольно замысловатый синтаксис, если соответствуют сложным структурам данных (таковы, например, настройка irc-клиента irssi ) или содержать в себе дополнительные средства самодокументирования (например, файл настройки текстового www-броузера lynx не просто хорошо документирован, но и размечен теми же средствами, какие используются в самом броузере для представления HTML).

Файлы конфигурации используются для задания параметров настройки операционной системы. Они имеют несложную структуру и могут редактироваться вручную с помощью обычного приложения «Блокнот». Файлы конфигурации имеют расширение ini и могут содержать комментарии, пустые строки и различные параметры. Часто данный тип файлов используется для задания параметров загрузки.

Вам понадобится

  • - права администратора.

Инструкция

  • Запустите приложение «Блокнот». Данное приложение вы можете найти через меню «Пуск» в разделе «Стандартные программы», либо создайте текстовый файл, кликнув по рабочему столу правой кнопкой мыши и нажав на пункт «Создать». Далее выберите «Текстовый файл». Откроется приложение «Блокнот». Данное программное обеспечение по умолчанию установлено на вашем компьютере вместе с операционной системой.
  • Сохраните новый текстовый файл как ini-файл, задав ему соответствующее расширение. Имя файла укажите, исходя из его предназначения. Файл для загрузки операционной системы обычно называется boot.ini и находится в корне диска «С». Внесите строки настроек файла конфигурации. В разделе укажите значение параметров timeout (время ожидания выбора пользователя), default (система по умолчанию), redirect (имя порта) и redirectbaudrate (скорость порта).
  • В разделе пропишите информацию об установленных системах, и где находятся их папки. Здесь указывается номер загрузочного жесткого диска системы и номер раздела винчестера. Вся информация указывается на ваше усмотрение. Подобные данные можно просмотреть, зайдя во вкладку «Мой компьютер». Нажмите правой клавишей мышки и выберите пункт «Свойства». Здесь вы можете просмотреть все параметры системы.
  • Вносить изменения в файл конфигурации можно также посредством стандартных утилит Windows. Для этого зайдите в свойства «Моего компьютера», в раздел «Загрузка» и «Восстановление». Далее найдите область «Загрузка операционной системы». Нажмите на кнопку «Правка». Здесь вы можете внести различные изменения в файлы конфигурации, а также создать свои собственные. Также не стоит забывать и о том, что подобные файлы могут нарушить работу всей операционной системы при неправильной эксплуатации.
  • Также вы можете просто в текстовом редакторе с нуля написать файл конфигурации. Например, файл конфигурафии операционной системы Windows, а именно win.ini содержит такие строки, как
  • ; for 16-bit app support

    CMCDLLNAME32=mapi32.dll

    CMCDLLNAME=mapi.dll

    MAPIXVER=1.0.0.1

    .
    3. Теперь Вы должны создать конфигурационный файл (config.inc.php). Создание конфигурационного файла - необходимое условие прежде всего для запуска phpMyAdmin, а также необходимо для задания некоторых возможностей. Эта задача может быть выполнена двумя разными способами. Традиционно, пользователи могут вручную отредактировать копию файла config.inc.php. Кроме этого, пользователи, предпочитающие графическую инсталляцию, могут воспользоваться мастером установки (скриптом инсталляции).

    • Для того, чтобы вручную создать конфигурационный файл, достаточно простейшего текстового редактора, с помощью которого нужно создать файл config.inc.php. Для упрощения задачи, Вы можете скопировать в текстовый редактор содержимое файла config.sample.inc.php - образца рабочей конфигурации, содержащей минимальное количество конфигурационных переменных.

      Созданный файл необходимо поместить в главную директорию phpMyAdmin (ту, которая содержит index.php). phpMyAdmin сперва загружает libraries/config.default.php, а затем подменяет значения прописанных в нем переменных теми, что находит в config.inc.php. Если значение по умолчанию (тех переменных, что определены в libraries/config.default.php) Вас устраивает, тогда нет необходимости включать его в config.inc.php. Для запуска phpMyAdmin вам понадобятся как минимум несколько директив, простейшая конфигурация может выглядеть так:

      $cfg["blowfish_secret"] = "ba17c1ec07d65003"; // use here a value of your choice
      $i=0;
      $i++;
      $cfg["Servers"][$i]["auth_type"] = "cookie";
      ?>

      Или, если вы не хотите вводить каждый раз логин/пароль (данная конфигурация не рекомендуется из соображений безопасности), конфигурационный файл может выглядеть так:
    • Вместо ручного редактирования файла config.inc.php, Вы можете использовать скрипт установки. Прежде всего, вам необходимо вручную создать в главной директории phpMyAdmin папку "config". Это - мера безопасности. При работе под ОС Linux/Unix Вы можете использовать следующие команды:

      Для редактирования уже существующего конфигурационного файла, можно воспользоваться следующими командами:

      На других платформах, просто создайте директорию и убедитесь, что Ваш веб-сервер имеет права на чтение и запись в неё. FAQ 1.26 может помочь в этом случае.

      Затем, откройте в браузере scripts/setup.php. Помните, что изменения не будут сохранены на диск до тех пор, пока не будет нажата кнопка "Save" в блоке "Configuration". Если все хорошо, то скрипт сохранит новый config.inc.php в директорию config/, но если веб-сервер не имеет необходимых прав, Вы можете увидеть сообщение об ошибке "Cannot load or save configuration". В таком случае, убедитесь, что директория config/ создана и имеет необходимые права, либо воспользуйтесь ссылкой "Download" для сохранения конфигурационного файла на локальный диск и последующей закачки (например, через FTP) на сервер.

      Как только файл был сохранен, необходимо переместить его из директории config/ в главную директорию phpMyAdmin и в целях безопасности сбросить права на него:

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

    4. Если Вы собираетесь использовать "config" аутентификацию (auth_type), необходимо защитить директорию в которую был установлен phpMyAdmin от несанкционированного доступа, потому что данный режим позволяет любому пользователю получить доступ к phpMyAdmin без предварительного ввода логина/пароля. Рекомендуются альтернативные методы аутентификации, например, HTTP-AUTH (с помощью.htaccess файла), либо использованием одного из двух других методов аутентификации: cookie или http. См. подраздел FAQ "Мультипользовательская установка" для дополнительной информации, особенно обратите внимание на FAQ 4.4 .
    5. Откройте главную директорию phpMyAdmin в вашем браузере. Должно появиться окно приветствия phpMyAdmin и Ваши базы данных, или окно ввода логина, в случае использования режима HTTP- или cookie-аутентификации. 6. Вы должны запретить доступ к субдиректории./libraries средствами вашего веб-сервера. В случае использования веб-сервера Apache для защиты директории Вы можете использовать файл.htaccess. При использовании других веб-серверов вы должны запретить доступ к директории./libraries самостоятельно. Подобная конфигурирование - превентивная мера на случай обнаружения уязвимостей: возможного раскрытия пути (path exposure) и межсайтового выполнения сценариев (Cross-site Scripting, XSS).

    Linked-tables infrastructure (Инфраструктура связанных таблиц)

    Для использования многих опций (закладок, комментариев, SQL-истории, PDF-схем, преобразования содержимого полей, и т.д.) необходимо создать набор специальных таблиц. Эти таблицы могут находиться как в Вашей базе данных, так и в центральной базе при многопользовательской системе (в этом случае данная БД может быть доступна только для пользователя controluser, соответственно, другие пользователи не имеют прав на неё).

    Зайдите в директорию scripts/ , здесь вы найдете файл create_tables.sql . (Если используете Windows сервер, обратите особое внимание на FAQ 1.24).

    Если у Вас установлена версия MySQL сервера 4.1.2 или более позднее, используйте вместо вышеуказанного файла create_tables_mysql_4_1_2+.sql , для новой инсталляции.

    Если у вас уже есть готовая инфраструктура и вы обновляете MySQL до версии 4.1.2 или выше, используйте upgrade_tables_mysql_4_1_2+.sql .

    Вы можете использовать phpMyAdmin для создания баз данных и таблиц, для этого необходимо обладать администраторскими привилегиями на создание баз данных и таблиц, в связи с чем скрипту может понадобиться небольшая настройка (указание названия базы данных).

    После импорта create_tables.sql , Вы должны определить названия таблиц в файле config.inc.php , с помощью директив, описанных в разделе "Конфигурирование" . Кроме этого необходимо обладать правами controluser на данные таблицы (см. ниже, раздел "Использование режима аутентификации").

    Обновление старой версии

    Просто скопируйте конфигурационный файл ./config.inc.php от предыдущей версии в директорию куда был распакован phpMyAdmin. Конфигурационные файлы из очень старых версий (2.3.0 or older) могут потребовать некоторых настроек, т.к. некоторые опции были изменены или удалены.

    Если Вы обновили свой MySQL-сервер с версии старше, чем 4.1.2 до версии 4.1.2 или новее,и используете инфраструктуру связанных таблиц, тогда необходимо запустить SQL-скрипт, который находится в scripts/upgrade_tables_mysql_4_1_2+.sql.

    Использование режимов аутентификации

    При использовании "HTTP" и "cookie" режимов phpMyAdmin, рекомендуется завести пользователя (controluser), который должен обладать правами только на выборку (SELECT) из следующих таблиц: mysql.user (все столбцы за исключением "Password"), mysql.db (все столбцы), mysql.host (все столбцы) и mysql.tables_priv (все столбцы за исключением "Grantor" и "Timestamp").

    GRANT USAGE ON mysql.* TO "pma"@"localhost" IDENTIFIED BY "pmapass";
    GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO "pma"@"localhost";
    GRANT SELECT ON mysql.db TO "pma"@"localhost";
    GRANT SELECT ON mysql.host TO "pma"@"localhost";
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO "pma"@"localhost";

    Необходимо установить настройки для controluser в файле config.inc.php в следующих секциях: $cfg["Servers"][$i]["controluser"] и $cfg["Servers"][$i]["controlpass"] .

    В нижеприведенном примере, в обучающих целях используются следующие значения для: "controluser" - "pma", "pmapass" - "controlpass". Но на практике используйте другие значения в своих файлах!

    Разумеется, localhost в случае необходимости нужно заменить на реальное имя веб-сервера.

    Если вы используете старую версию MySQL (ниже 4.0.2), замените первый запрос GRANT SELECT следующим образом:

    GRANT SELECT (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) ON mysql.user TO "pma"@"localhost";

    И если Вы хотите использовать возможности закладок и связей:

    GRANT SELECT, INSERT, UPDATE, DELETE ON .* TO "pma"@"localhost";

    (конечно, подразумевается, что должна быть настроена инфраструктура связанных таблиц).

  • Разумеется, пользователь должен разрешить браузеру использовать куки. Теперь это необходимое требование для всех методов аутентификации
  • В этом режиме, после прохождения первичной идентификации phpMyAdmin создает на компьютере пользователя cookie-файл, содержащий логин и пароль пользователя, который будет автоматически подставляться при следующих сеансах.
  • При использовании данного режима пользователь может завершить сеанс phpMyAdmin и авторизоваться под другим именем.
  • Если вы собираетесь проходить процедуру идентификации на произвольном сервере обратите внимание на директиву $cfg["AllowArbitraryServer"] .
  • Как указано в секции "Технические требования" , наличие PHP библиотеки mcrypt на сервере способно ускорить фазу авторизации, но наличие её не обязательно.
  • "config" - аутентификация 8 февраля 2009

    Конфигурационный файл - это просто XML-файл с соответствующим именем, со-
    держащий набор необходимых тегов. Имя конфигурационного файла приложения
    должно иметь следующий вид: ..cQnug, где <патё> - имя, а
    - расширение исполняемого файла приложения (например, .ехе). Так,
    конфигурационный файл приложения myApplication.exe назван myApplication.
    exe.coring. Конфигурационный файл должен располагаться в одном каталоге со
    сборкой приложения, для настройки которого он предназначен.
    Содержимое конфигурационных файлов определяется общей для этих файлов
    схемой. Базовая структура конфигурационного файла выглядит так:


    Обязателен только первый тэг, в котором указаны версия XML, используемая
    кодировка и элемент верхнего уровня, остальные элементы не обя-
    зательны и добавляются или удаляются по мере необходимости.
    Чтобы создать конфигурационный файл для сборки, написанной на Visual Basic
    .NET, выберите в меню File пункт Add New Item\Application Configuration File -
    к проекту будет добавлен новый конфигурационный файл, в который можно вруч-
    ную добавить необходимые элементы. При компиляции приложения файлу назна-
    чается соответствующее имя.
    При использовании Visual C# конфигурационный файл придется создавать и за-
    полнять вручную при помощи текстового редактора (например, Блокнота). Гото-
    вый конфигурационный файл следует сохранить с именем app.config и добавить к
    проекту приложения.
    Схема конфигурационного файла
    Полностью обсудить схему конфигурационного файла в этом разделе на представ-
    ляется возможным, но ее элементы верхнего уровня мы все же рассмотрим. Более
    подробно об этом рассказано в документации по Visual Studio .NET. Элементы вер-
    хнего уровня схемы конфигурационного файла описаны в таблице 9-1.
    Таблица 9-1. Элементы верхнего уровня схемы конфигурационного файла
    Элемент Что содержит
    Единственный элемент - , задающий
    требуемую версию CLR
    Параметры, управляющие связыванием сборок и сбором
    мусора
    Сведения о конфигурации каналов и удаленных объектах
    Сведения для Интернет-приложений
    Элемент < cryptography Settings>, определяющий, как
    приложение использует криптографические технологии
    Нестандартные параметры
    Конфигурационные данные для классов Trace a Debug
    > Создание конфигурационного файла для приложения на Visual Basic .NET
    1. В меню Project выберите nyHKTAdd New Item - откроется одноименное окно.
    2. В окне Add New Stem выберите шаблон Application Configuration File - к проек-
    ту будет добавлен конфигурационный файл.
    3. Внутри элемента < configuration > поместите элементы схемы для настройки не-
    обходимых параметров. Более подробно о доступных элементах схемы - в доку-
    ментации на Visual Studio .NET.
    4. Сохраните созданный файл и скомпонуйте приложение.
    > Создание конфигурационного файла для приложения на Visual C#
    1. В меню Project выберите Add New Item.
    2. В окне Add New Item выберите Text File - новый текстовый файл добавляется к
    проекту и открывается в текстовом редакторе.
    3. В окне Solution Explorer щелкните правой кнопкой новый текстовый файл и вы-
    берите команду Rename, чтобы переименовать файл в App.config. В текстовом
    редакторе добавьте к файлу следующий XML-код:



    В окне Solution Explorer дважды щелкните файл App.config. Ответьте согласием
    на вопрос о закрытии файла - среда разработки переключится в редактор с
    XML-текстом файла App.config.

    Представляем вашему вниманию новый курс от команды 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 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Pwd – пароль;

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

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

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

    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

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

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

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

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

    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;