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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Коректировка свойств во ремя выполнения 
V
    Опции темы
Rapalex
Дата 8.5.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

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



Задача тривиальна, хочю хранить пороль не очень открыто.

Конекчюсь я к базе данных, разумеется конекшон стринг хранится в настройках проги, и все их могут увидеть в файле ХМЛ возле проги.

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


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
mr.DUDA
Дата 8.5.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Можно хранить пароль в зашифрованном виде. Какое приложение ? Не ASP.NET случайно ?


--------------------
user posted image
PM MAIL WWW   Вверх
Rapalex
Дата 8.5.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

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



Нет, формс, так вопрос не в том как хранить, вопросс в том как его передать?


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
LuMee
Дата 9.5.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Rapalex @ 8.5.2007,  10:41)
Конекчюсь я к базе данных, разумеется конекшон стринг хранится в настройках проги, и все их могут увидеть в файле ХМЛ возле проги.

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

Что-то не совсем понял насчет перехвата. Я так понимаю, у тебя имеются, например, Typed DataSet'ы, при создании которых ты указывал строку подключения из настроек?
Хотя в целом алгоритм действий прост: при запуске приложения (в Global.asax для ASP.NET, в Program.cs для обычных) достаешь строку подключения из настроек, преобразовываешь, как надо, и подсовываешь ее во все нужные DataSet'ы.
В качестве преобразование могут выступать: расшифровка (лично я предпочитаю такие вещи просто шифровать и хранить в конфиге, ничего не боясь smile), либо дописывание пароля, которое можно сделать так:
Код

// Вариант для SQL Server
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder("<строка подключения без пароля>");
builder.Password = "пароль";
string connectionString = builder.ConnectionString;

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

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



Цитата(LuMee @  9.5.2007,  14:18 Найти цитируемый пост)
 при запуске приложения (в Global.asax для ASP.NET, в Program.cs для обычных) достаешь строку подключения из настроек, преобразовываешь, как надо, и подсовываешь ее во все нужные DataSet'ы.


Блина как я сам не догодался, проще некуда, спс. А я думал есть какието события которые позволят преобразовывать свойства в момент обращения кним.

 smile

Добавлено через 1 минуту и 54 секунды
Подожди так конекшон_стринг это настройки АПП их менять во время работы программы н получится!!!


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
tol05
Дата 10.5.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Есть провайдеры шифрования ProtectedConfigurationProvider 
http://msdn2.microsoft.com/en-us/library/s...der(VS.80).aspx 
и его дочерние классы RSAProtectedConfigurationProvider и DpapiProtectedConfigurationProvider
Позволяют шифровать и расшифровывать секции конфиг-файлов.
Как насчет них?


Это сообщение отредактировал(а) tol05 - 10.5.2007, 09:41


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Rapalex
Дата 10.5.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

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



Цитата(tol05 @  10.5.2007,  09:41 Найти цитируемый пост)
 ProtectedConfigurationProvider 

Както сложновато и время на его освоение надо потратить, да и не надо это, мне хочется к конекшон стринг дописать пароль и всего делов. А как такое сделать  smile 


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
tol05
Дата 10.5.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



ну... не знаю. Зайди на RSDN->Статьи->Безопасность->Криптография
Например, для ленивых smile "C#: Как закриптовать что-нибудь хоть как-нибудь"  smile 

По поводу криптографии и провайдеров есть прикольная статья 
http://www.microsoft.com/rus/msdn/magazine...retDataFull.asp


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
LuMee
Дата 11.5.2007, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Rapalex @ 10.5.2007,  09:26)
Подожди так конекшон_стринг это настройки АПП их менять во время работы программы н получится!!!

Во-первых, менять их можно. Не знаю, как в ASP.NET, в Windows Forms-приложениях работает такой код (у меня - в Program.cs):
Код

encryptedConnectionString = ... // тут я шифрую строку подключения, которую использовал юзер
Configuration config =
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConnectionStringSettings settings =
    new ConnectionStringSettings("MainConnectionString", encryptedConnectionString);
config.ConnectionStrings.ConnectionStrings.Remove("MainConnectionString");
config.ConnectionStrings.ConnectionStrings.Add(settings);

Надо только не забыть подключить какую-то assembly, вроде System.configuration.
Во-вторых, ничего менять и не надо, можно сделать типа так:
делаешь класс для хранения строки подключения
Код

static class MyConnectionString
{
    private static string connectionString = string.Empty;

    public static string ConnectionString
    {
         get { return connectionString; }
         set { connectionString = value; }
    }
}

Далее где-то в Global.asax или Program.cs устанавливаешь значение этой строке
Код

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder("<строка подключения без пароля>");
builder.Password = "пароль";
MyConnectionString.ConnectionString = builder.ConnectionString;

Ну и уже при открытии формы или страницы с DataSet'ом в Form_Load или Page_Load 
Код

theDataSet.ConnectionString = MyConnectionString.ConnectionString

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

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



Буду разбиратся, всем спасибо, пока темму закрою.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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