1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
||||||
1 | ||||||
Как сделать чтобы переменная создавалась 1 раз, а при закрытии программы не удалялась18.11.2015, 22:38. Показов 2437. Ответов 15
Метки нет (Все метки)
Я делаю форму входа с паролем, но при этом у меня возникла проблема.
public static string key; Объявил в одной форме переменную. А в другой кнопке button1 в той же форме код: if (key==null) { key = "yaadmin"; } Т.е. мне необходимо чтобы пароль как бы уже был задан но, если что чтобы его можно было поменять и вот в этом вопрос возник. Вот на другой форме у меня код такой:
Если что-то не понятно уточняйте, я отвечу. Интересная задача, но с моими знаниями чувствую не потяну.
0
|
18.11.2015, 22:38 | |
Ответы с готовыми решениями:
15
Переменная, значение которой сохраняется при закрытии программы Строковые оптимизации, чтобы не создавалась новая строковая переменная на каждом шаге цикла Как сделать, чтобы когда пишешь с нескольких textbox в один label, инфа не удалялась бы, а добавлялась Как мне сделать так, чтобы данный текстовый файл был открыт один раз при запуске программы и закрыт при закрытии программы? |
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
|
|
18.11.2015, 22:43 | 2 |
Я не очень понял, но вы хотите запустить программу, а там уже не стандартный пароль, а тот который вы ставили?
0
|
5876 / 4753 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
18.11.2015, 23:03 | 3 |
gen1usqq,
Если в программе система аутентификации действительно является средством защиты важных данных, то заданный пароль шифруется и затем записывается в файл, который тоже шифруется/прячется (в зависимости от степени паранойи). Если нужно просто сделать защиту от дурака или это учебная работа, то можно просто сохранить в файл / сериализовать / записать в settings и т.п.
0
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
19.11.2015, 10:57 [ТС] | 4 |
именно так.
Добавлено через 1 минуту Понимаете, я хочу чтобы переменная была всегда в программе, и при закрытии программы данные сохранялись и переменная не удалялась, т.е. переменная существовала всегда. Как можно это сделать?
0
|
19.11.2015, 11:14 | 5 |
Хранить в БД (в зашифрованном виде) - думаю это верно. Ещё можно использовать сирелизацию.
https://msdn.microsoft.com/ru-... 33843.aspx
0
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
19.11.2015, 13:13 [ТС] | 6 |
Не могли бы вы мне показать пример кода, как реализовать данную задачу? Буду очень признателен.
Добавлено через 35 минут И ещё, зачем мне БД, если мне нужно хранить всего лишь значение 1 стринговой переменной??
0
|
5876 / 4753 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||||||
19.11.2015, 13:32 | 7 | ||||||||||
gen1usqq,
1) класс формы сохранения пароля:
0
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
19.11.2015, 13:46 [ТС] | 8 |
Опять же повторюсь наверное, я не хочу использовать файл, ибо это как мне кажется не особо безопасно. Есть какие либо пути хранения переменной всё время? Не зависимо от запуска либо закрытия программы????
0
|
2 / 2 / 2
Регистрация: 03.11.2015
Сообщений: 8
|
|
19.11.2015, 15:41 | 9 |
Возникает вопрос: хранения где? Вам предложили а базе данных, в файле. Нет? Тогда придумайте, где вы хотите хранить переменную.
0
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
19.11.2015, 17:18 [ТС] | 10 |
А в самой программе переменную просто не удалять и не очищать память от неё, нельзя так сделать? Если можно то как?
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
19.11.2015, 18:32 | 11 |
Я в одном своем проекте сделал так: в ресурсы программы загнал другую небольшую программу, которая меняет пароль. Сам пароль хранится в виде хэша SHA так же в ресурсах. При нажатии "сменить пароль" сменяющая пароль прога распаковывается из ресурсов и запускается, после чего основная закрывается. В качестве параметров той проге подаются новый и старый пароль, к которым прилеплены в конце определенные символы(чтобы нельзя было просто распаковать сменяющую пароль прогу из ресурсов и ею сменить пароль без знания тех символов). Далее, если все верно, сменяющая пароль прога залезает в ресурсы основной и меняет там хэш пароля, после чего открывает основную прогу с параметром, указывающим, успешно ли сменен пароль. Заказчик был доволен, ибо никаких лишних файлов а пароль есть, но, понятное дело, от кого-то более-менее серьезного, способного декомпилировать все это дело, данный способ бесполезен.
Добавлено через 1 минуту Да, и распакованная прога для смены пароля в конце удаляется Добавлено через 8 минут Вот как вы себе это представляете хотя бы теоретически? Переменные находятся в оперативной памяти, а она, как известно, не предназначена для долговременного хранения чего-то и очищается от данных конкретной программы сразу как ее закрыли, и при выключении компа данные в ней не сохраняются. А на жестком диске хранение происходит в виде файлов-что вам и предложили.
0
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
19.11.2015, 19:03 [ТС] | 12 |
То что вы мне описали, является для меня пока что, сложновато, мне это задание дали в хабзе ( типо задание на практику), я хотел его сделать круто, но видимо придётся создать файл и в нём хранить пароль, но мне не нравится, то что файл будет открытым, т.е. в него может любой зайти и что хочешь с ним делать.
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
19.11.2015, 19:17 | 13 |
Ну тогда храните просто хэш пароля в файле. А если файла нет-юзер сам виноват что удалил. И в конце символы к нему прилепите-чтобы юзер не мог просто свой хэш подложить, если пронюхает, что за алгоритм хэширования там. И эффект будет примерно тот же-только файл будет глаза мозолить.
Добавлено через 5 минут Вообще попытки запаролить вход в прогу-дело, надо сказать, совершенно бесполезное. Кому надо все равно взломают, так или иначе. Тем более на шарпе, который в легкую декомпилируется. Пароли имеет смысл использовать тогда, когда защищаемые им данные зашифрованы или находятся где-то на сервере, к которому у юзера доступа нет.
0
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
19.11.2015, 20:28 [ТС] | 14 |
а что такое хэш если не сложно поясните?
Добавлено через 58 минут Ладно вы меня убедили и я удалил в программе, использование пароля, но у меня ещё очень интересная проблема не могли бы вы мне объяснить как сделать? https://www.cyberforum.ru/csha... ost8361601
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
20.11.2015, 00:38 | 15 |
Говоря вкратце, это некое необратимое преобразование над над любыми данными, в результате которого на выходе последовательность байт фиксированного размера. То есть подать можно подать последовательность байтов любой длины-а результат будет одной длины. Зная хэш пароля, пароль из него восстановить нельзя, а вот проверить, правильный ли пароль-можно, проведя над введенным паролем то же самое преобразование. Правда, для всего этого существует проблема с коллизиями-для некоторых данных хэши будут одинаковы, при том, что сами данные разные. Но для хорошей хэш функции отыскать их не так-то просто, так что все ими активно пользуется-никто не хранит пароли в виде текста, только их хэши. Подробнее в википедии.
1
|
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 135
|
|
20.11.2015, 10:21 [ТС] | 16 |
Последний вопрос к вам, скажите можно ли как-нибудь сделать в компоненте listview, чтобы в программе в таблицу можно было вводить данные, а после сохранять эти данные в файл, очень нужно спасайте плиз).
0
|
20.11.2015, 10:21 | |
20.11.2015, 10:21 | |
Помогаю со студенческими работами здесь
16
Сделать так, чтобы при закрытии книги удалялась кнопка как сделать чтобы форма создавалась один раз Как при активации чекбокса сделать так, чтобы текстареа удалялась? Как сделать так, чтобы при нажатии на кнопку в StringGrid создавалась еще 1 строка снизу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |