|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
Хранить строку в приложении14.01.2022, 12:58. Показов 11066. Ответов 209
Метки нет (Все метки)
Всем привет. Помогите, пожалуйста с курсовой.
Значит задача: Создать приложение с пользовательским доступом (логин/пароль, пользователь может быть пользователем, может быть админом). Значит я делаю следующим образом: В программу уже вшит пользователь "Администратор", при первом запуске предлагается создать ему пароль. Как только пароль создан рядом с приложением создается папка "Users" (по ее наличию, собственно, и проверяется первый запуск), где в файлах в зашифрованном виде хранится информация о пользователе. Препод говорит, что это не совсем правильное решение, и файла с данными "Администратор" в папке с пользователями быть не должно, так как (цитирую дословно) "Я скопирую пользователей в другое место, прибью папку Users, запущу программу и получу доступ к Администратору, снова введя пароль, потом верну пользователей назад" ![]() Можно ли как то хранить строковую переменную внутри приложения? Или может еще где-то. Или может какой-то другой метод хранения данных о пользователях есть? Буду очень благодарна за советы. Спасибо
0
|
|
| 14.01.2022, 12:58 | |
|
Ответы с готовыми решениями:
209
Как и в каком виде хранить файлы в приложении
Как правильно хранить и использовать константы в WPF приложении |
|
|
||||||||
| 17.01.2022, 14:29 | ||||||||
Я вчера вечером начал, пока есть только функции определения/создания файла, вычисление хеша, шифровки имени и роли.Начало такое:
0
|
||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
| 17.01.2022, 19:35 | |||||||||||||||||||||||||||||||||||||||
|
Добавлено через 3 минуты Я еще даже не продумал сущности, как хранить и обрабатывать юзеров. Не то это будет массив структур, не то список строк... Добавлено через 45 минут ![]() Добавлено через 4 часа 14 минут Kyra90, такс.. что пока (условно) готово у меня: Так пока выглядит "главный управляющий" библой UManager: UManager
Для "наружного применения" доступен только этот класс из библиотеки. В нем будут сосредоточены все вызовы необходимых функций. Функция хеширования, ну тут все просто: Hash
Файловый менеджер: FileManager
FileManager - только читает и записывает файл. Если файла нет - создает. Что читает и записывает ему должно быть пофигу. В коде виден некий LoggerSrv, вот он:LoggerSrv
Дважды два - все просто. Можно вызывать в нужные моменты лог и смотреть что творится.. В главной программе пока тестирование..
Да и сам UManager пока под вопросом. Сейчас используется разве что его конструктор для присвоения путей к файлу.. Ну ладно. Предложения: 1. Использовать не *.txt файлы, а, например *.bin или *.dat, ну или вообще какой-нибудь оригинальный, типа *.usrdhpxx ) Да и вообще, для пущего негодования препода - записывать файлы в двоичном виде. 2. Действительно использовать Properties.Settings для учетки админа, но записывать туда не сам пароль, а его хеш, как и в файле с пользователями.3. НЕ использовать Properties.Settings и хранить админа вместе со всеми
2
|
|||||||||||||||||||||||||||||||||||||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
||
| 17.01.2022, 19:40 [ТС] | ||
|
wizard41, Офигеть... буду разбираться. Спасибо Вам огромное.
0
|
||
|
|
||||||||||||||||||||||||||||||||||||
| 18.01.2022, 00:04 | ||||||||||||||||||||||||||||||||||||
|
Update:
Исправленный и дополненный FileManager: FileManager
Структура пользователя User: struct User
Класс Decrypt: Decrypt
UManager пока такой: UManager
Допустим, что файл сейчас такой:
Теперь, если сделать что-то такое:
![]() Понятно, что требуется хороший код-ревью, оптимизации, доработки и пр. We'll continue later!
2
|
||||||||||||||||||||||||||||||||||||
|
|
||
| 18.01.2022, 13:29 | ||
![]() P.S. Придумал другой вариант требования задачи, но решил не писать. Во-первых, уже выбран вариант. Во-вторых, всё-таки цель - автору самому придумывать такое. Иначе зачем всё это.
0
|
||
|
|
||||
| 18.01.2022, 13:56 | ||||
|
Да и вообще - логгер этот, это так, баловство ) Изначально он задуман для того, чтобы видеть что происходит в закрытых классах, т.к. доступ к ним извне я не открываю. Добавлено через 13 минут Единственно сомневаюсь в классе UManager - его конструктор присваивает пути к файлу. Если сделать его статическим, то придется лепить свойства по умолчанию для путей и метод для присвоения путей извне. Ну и другие его методы тоже тогда нет смысла делать static...
0
|
||||
|
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
|
|
| 18.01.2022, 23:18 | |
|
wizard41, пора репу на гитхабе создавать
1
|
|
|
|
||||||||||||
| 19.01.2022, 02:02 | ||||||||||||
![]() Добавлено через 17 минут Прислушался я к ответу Wolfdp, да, логирование лучше делать по требованию. Kyra90, я понемногу продвигаюсь, тут уже вам и класс User предоставляется и готовые типы учеток UserRole... Запись/чтение файлов вообще без вас делается, ну понятно, да. Еще немного допилить + вклеить логику делегирования прав разным пользователям, и можно считать, что бизнес-модель вашей курсовой готова. Форма будет только отображать и редактировать данные ядра (модели). P.S. Тот проект, что на гифке показывал с винформой - случайно уDELил, новый форм рисовать лень. Отрабатываю в консоли библу. P.S.S. В какой форме (коллекции) удобнее получать сведения о зарегистрированных пользователях для вывода в элементы управления? Пока я возвращаю массив типа User. Добавлено через 2 часа 4 минуты Upd: Класс пользователей: Class Users
Но я не даю вам полномочий бесконтрольно плодить пользователей с помощью, например, User u = new User(); в обход процедуры регистрации:Authorization
Открытый класс User всего лишь для возврата коллекции зарегистрированных пользователей во внешнюю среду. Добавлено через 7 минут Да, и максимальное абстрагирование от формальных паролей: введенный пароль остается в форточке, взяли с него хеш, записали в базу и до свидания. В памяти (библиотеки) фактических паролей нет.
1
|
||||||||||||
|
|
||||||||||||||||
| 19.01.2022, 14:35 | ||||||||||||||||
|
Kyra90, зарегистрированных пользователей я возвращаю:
Кликните здесь для просмотра всего текста
И в формах: Кликните здесь для просмотра всего текста
1
|
||||||||||||||||
|
|
||
| 19.01.2022, 20:07 | ||
|
Kyra90, у нас возникает одна неопределенность: юзвери у нас имеют только два значимых атрибута - это Имя и Пароль. Следовательно, можно невзначай создать пользователя с одинаковым именем и паролем, что явно не входит в задуманное.
От сюда, можно либо запрещать регистрировать пользователя с одинаковым именем и хешем пароля (что далеко от действительности), либо ввести еще одно поле-идентификатор, например адрес эл. почты. Или номер телефона..
0
|
||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|||
| 19.01.2022, 22:03 [ТС] | |||
0
|
|||
|
|
|||
| 19.01.2022, 22:34 | |||
|
А если зарегать их обоих, то будет непонятно при выборке, какого именно Алексея мы имеем в виду.
0
|
|||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
| 19.01.2022, 22:59 [ТС] | |
|
0
|
|
|
|
||||||||||||||||||||||
| 19.01.2022, 23:55 | ||||||||||||||||||||||
|
Но если вы настаиваете на этом, то учту в своем решении. Пока исхожу из этого. Добавлено через 10 минут
Добавлено через 2 минуты Юзеры до Igor были прочитаны из файла. Igor добавили уже в ходе работы приложения. При закрытии, он допишется в файл. Вернее, перепишется весь список. Проверки и компаратор позже сделаю. Добавлено через 39 минут
Метод SignUp от вас скрыт (реализация). Да, и AR тут - псевдоним:
1
|
||||||||||||||||||||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
||||
| 20.01.2022, 10:28 [ТС] | ||||
|
Добавлено через 9 минут Добавлено через 3 минуты
0
|
||||
|
|
|||
| 20.01.2022, 10:53 | |||
|
Kyra90, ashsvis, кхм.... Ладно. Пусть будет по вашему. Но все равно вы меня немного не поняли, наверное. Не важно.
Kyra90, так, значит у вас комбоксы, ага... Я понял.
0
|
|||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
||
| 20.01.2022, 10:57 [ТС] | ||
0
|
||
| 20.01.2022, 10:57 | |
|
Где хранить информацию в WPF приложении чтобы её можно было переносить с приложением на любой компьютер? Где лучше хранить строку подключения к sql? Как хранить переменную в приложении Где лучше хранить рисунки в приложении? Как хранить в приложении большой объем текста Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|