Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать строку подключения в web.config 
:(
    Опции темы
Yagmort
Дата 26.10.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



народ я хочу передать строку подключения в файл web.config 
Это из web.config в код C# а как сделать, наоборот



Код

string strcon = WebConfigurationManager.ConnectionStrings["ConnStrO"].ConnectionString;


вот эту строку передать на выполнение в web.config или так не получится? нужно это по причине того, что пароль и имя пользователя не видны в web.config, а передаются только при введении их в текстовое поле
Код

"Data Source=NB;Integrated Security=SSPI;Initial Catalog=o;Persist Security Info=True;User ID="+Login1.UserName+";Password="+Login1.Password+";";

PM MAIL   Вверх
N1ko
Дата 26.10.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



У меня на работе есть только WinForms, по этому пробовал под ним изменить конфиг. Но для Asp думаю будет идентично.

Код

 System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
 config.AppSettings.Settings.Add("Password", "Hello");
 config.Save(ConfigurationSaveMode.Modified);
 ConfigurationManager.RefreshSection("appSettings");

PM MAIL ICQ   Вверх
Yagmort
Дата 26.10.2010, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Ок спасибо большое. Вопросы по пользователям, мне их лучше создавать в SQL Servere ? и передавать одну строку в web.config с разными логинами и паролями? или под каждого юзверя заводить одну строку ? И при переносе БД на другой комп, юзвери будут сохраняться в БД ?
Передавая строку подключения он будет мне ругаться на то что логин и пароль не совпадают при не правильном вводе логина и пароля? А при правильном пропускать в БД ? ? ? Или тут немного другая система аутентификации : ?
PM MAIL   Вверх
N1ko
Дата 27.10.2010, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Ну насчёт строки для каждого юзера думаю это не лучший варант. Вообще как по мне может быть 2 варианта развития(основных по крайней мере)
1 вариант. Ты возлагаешь все надежды на СУБД и создаёшь в ней пользователей. (CREATE USER bla bla bla) Этот вариант более надежный и его наверное стоит использовать, если тебе нужно использовать все фичи связанные с управлением пользователями.(управление правами, ролями или тп) Как правило данное решение используется в тех случаях, когда колличество пользователей заведомо известно и их относительно немного.
2 вариант. Тут ты возлагаешь все надежды только на себя и на свой моск. Создаёшь таблицу для хранения пользователя, его пароля и доп. инфы. И нужные тебе поля шифруешь определённым алгоритмом(если тебе это конечно нужно). Плюс этого варианта в том что ты не замусориваешь базу пользователями. Допустим у какого нить сайта 10000 пользователей. Как по мне глупо каждому из них регить учётку на уровне СУБД.

Каждый раз когда тебе нужно залогиниться, проверяешь есть ли такой пользователь. Если нету, выдаёшь ошибку. В общем примерно то что ты описал. 
ЗЫ Если я в чём то не прав, поправьте меня плз =)

Это сообщение отредактировал(а) N1ko - 27.10.2010, 01:56
PM MAIL ICQ   Вверх
A5uKa
  Дата 27.10.2010, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



А я читаю web.config как XML  smile 

Код

        private void Apply_Click(object sender, RoutedEventArgs e)
        {
            if (Window1.cfg != null && Window1.cfg.FSAddress != "")
                if (System.IO.File.Exists(Window1.cfg.FSAddress))
                {
                    XDocument xArr = XDocument.Load(Window1.cfg.FSAddress);
                    bool tuner2 = true;
                    foreach (XElement item in xArr
                                        .Element("configuration")
                                        .Elements("connectionStrings")
                                        .Elements("add"))
                    {
                        foreach (XAttribute attr in item.Attributes()
                                .Where(i => i.Name.ToString()
                                .CompareTo("connectionString") == 0))
                        {
                            if (tuner2)
                            {
                                attr.SetValue(id1.Text);
                                tuner2 = false;
                            }
                            else
                                attr.SetValue(id2.Text);
                        }
                    }
                    xArr.Save(Window1.cfg.FSAddress);
                    MessageBox.Show("Конфигурация успешно обновлена");
                }
        }

PM   Вверх
Yagmort
Дата 27.10.2010, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(N1ko @ 26.10.2010,  17:12)
У меня на работе есть только WinForms, по этому пробовал под ним изменить конфиг. Но для Asp думаю будет идентично.

Код

 System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
 config.AppSettings.Settings.Add("Password", "Hello");
 config.Save(ConfigurationSaveMode.Modified);
 ConfigurationManager.RefreshSection("appSettings");

Код

            string strcon = "Data Source=G;Integrated Security=SSPI;Initial Catalog=o;Persist Security Info=True;User ID=" + Login1.UserName.ToString() + ";\"" + Login1.Password.ToString() + "\";";
            System.Configuration.Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            configuration.AppSettings.Settings.Add("ConnStrO",strcon);
            configuration.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");


Чет пробую и выдает мне ошибку (

Добавлено @ 09:46
Цитата(A5uKa @ 27.10.2010,  07:26)
А я читаю web.config как XML  smile 

Код

        private void Apply_Click(object sender, RoutedEventArgs e)
        {
            if (Window1.cfg != null && Window1.cfg.FSAddress != "")
                if (System.IO.File.Exists(Window1.cfg.FSAddress))
                {
                    XDocument xArr = XDocument.Load(Window1.cfg.FSAddress);
                    bool tuner2 = true;
                    foreach (XElement item in xArr
                                        .Element("configuration")
                                        .Elements("connectionStrings")
                                        .Elements("add"))
                    {
                        foreach (XAttribute attr in item.Attributes()
                                .Where(i => i.Name.ToString()
                                .CompareTo("connectionString") == 0))
                        {
                            if (tuner2)
                            {
                                attr.SetValue(id1.Text);
                                tuner2 = false;
                            }
                            else
                                attr.SetValue(id2.Text);
                        }
                    }
                    xArr.Save(Window1.cfg.FSAddress);
                    MessageBox.Show("Конфигурация успешно обновлена");
                }
        }

О если бы я понимал этот код __.... ничего не пойму... С# 2 недели всего изучаю

Это сообщение отредактировал(а) Yagmort - 27.10.2010, 10:41
PM MAIL   Вверх
A5uKa
  Дата 27.10.2010, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



Цитата

О если бы я понимал этот код __.... ничего не пойму... С# 2 недели всего изучаю 


погугли про XDocument и Linq
PM   Вверх
N1ko
Дата 27.10.2010, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Цитата(Yagmort @  27.10.2010,  09:33 Найти цитируемый пост)
Чет пробую и выдает мне ошибку (


А чё за ошибка то?

PM MAIL ICQ   Вверх
Yagmort
Дата 27.10.2010, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(N1ko @ 27.10.2010,  10:32)
Цитата(Yagmort @  27.10.2010,  09:33 Найти цитируемый пост)
Чет пробую и выдает мне ошибку (


А чё за ошибка то?

Код

exePath должен быть указан, если он не запущен внутри отдельного исполняемого элемента. 
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. 

Сведения об исключении: System.ArgumentException: exePath должен быть указан, если он не запущен внутри отдельного исполняемого элемента.

Строка 26:             System.Configuration.Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);


Причем мне нужно передать строку в   <connectionStrings> а не в <AppSettings>

Где то ему видемо надо указать путь к файлу, а т.к. я не сильно знаю синтаксис могу предполагать что он будет где то тут ("@web.config",ConfigurationUserLevel.None)

Это сообщение отредактировал(а) Yagmort - 27.10.2010, 10:51
PM MAIL   Вверх
Yagmort
Дата 27.10.2010, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(A5uKa @ 27.10.2010,  09:58)
Цитата

О если бы я понимал этот код __.... ничего не пойму... С# 2 недели всего изучаю 


погугли про XDocument и Linq

Почитал я про этот язык Linq впринцепе хорошая идея но долгая реально ) че нить полегче надо для начала
PM MAIL   Вверх
N1ko
Дата 27.10.2010, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Ну в WinForms config файл нужно называть следующим образом: НазваниеИсполняемогоФайла.config Попробуй, может выйдет.

Это сообщение отредактировал(а) N1ko - 27.10.2010, 11:21
PM MAIL ICQ   Вверх
A5uKa
  Дата 27.10.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



Цитата(Yagmort @ 27.10.2010,  11:12)
Цитата(A5uKa @ 27.10.2010,  09:58)
Цитата

О если бы я понимал этот код __.... ничего не пойму... С# 2 недели всего изучаю 


погугли про XDocument и Linq

Почитал я про этот язык Linq впринцепе хорошая идея но долгая реально ) че нить полегче надо для начала

Тогда только разбираться с  ConfigurationManager -ом , если конечно не хочешь читать web.conf как текстовый файл  smile 
PM   Вверх
Yagmort
Дата 27.10.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(N1ko @ 27.10.2010,  11:19)
Ну в WinForms config файл нужно называть следующим образом: НазваниеИсполняемогоФайла.config Попробуй, может выйдет.

Так мне куда его писать "@Oweb.config"? -так называть ? 
У меня в web.config должны быть заголовки ?

Код

  <connectionStrings>
    <add 
      name="ConnStrO" 
      connectionString="Data Source=G;Integrated Security=SSPI;Initial Catalog=o;Persist Security Info=True;" 
      providerName="System.Data.SqlClient"/>
  </connectionStrings>


Добавлено через 1 минуту и 44 секунды
Цитата(A5uKa @ 27.10.2010,  11:23)
Цитата(Yagmort @ 27.10.2010,  11:12)
Цитата(A5uKa @ 27.10.2010,  09:58)
Цитата

О если бы я понимал этот код __.... ничего не пойму... С# 2 недели всего изучаю 


погугли про XDocument и Linq

Почитал я про этот язык Linq впринцепе хорошая идея но долгая реально ) че нить полегче надо для начала

Тогда только разбираться с  ConfigurationManager -ом , если конечно не хочешь читать web.conf как текстовый файл  smile

Я бы с удовольствием, но это реально долго... Синтаксис там ### какой.. ни одного комента нет в MSDN только код и все... а что они там сделали можно только предполагать
PM MAIL   Вверх
N1ko
Дата 27.10.2010, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Ну просто глянь на exe файл, который создаётся в папке bin ->Debug(Или Release если ты именно его юзаешь) твоего проекта. Вот всё что идёт до .exe скопируй и вставь в название конфигурационного файла 


Это сообщение отредактировал(а) N1ko - 27.10.2010, 11:50
PM MAIL ICQ   Вверх
Yagmort
Дата 27.10.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(N1ko @ 27.10.2010,  11:45)
Ну просто глянь на exe файл, который создаётся в папке bin ->Debug(Или Release если ты именно его юзаешь) твоего проекта. Вот всё что идёт до .exe скопируй и вставь в название конфигурационного файла

Куда вставлять имя файла, в какую строку ? 

user posted image


Папка bin пустая


Это сообщение отредактировал(а) Yagmort - 27.10.2010, 12:08
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1398 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.