|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
Хранить строку в приложении14.01.2022, 12:58. Показов 11041. Ответов 209
Метки нет (Все метки)
Всем привет. Помогите, пожалуйста с курсовой.
Значит задача: Создать приложение с пользовательским доступом (логин/пароль, пользователь может быть пользователем, может быть админом). Значит я делаю следующим образом: В программу уже вшит пользователь "Администратор", при первом запуске предлагается создать ему пароль. Как только пароль создан рядом с приложением создается папка "Users" (по ее наличию, собственно, и проверяется первый запуск), где в файлах в зашифрованном виде хранится информация о пользователе. Препод говорит, что это не совсем правильное решение, и файла с данными "Администратор" в папке с пользователями быть не должно, так как (цитирую дословно) "Я скопирую пользователей в другое место, прибью папку Users, запущу программу и получу доступ к Администратору, снова введя пароль, потом верну пользователей назад" ![]() Можно ли как то хранить строковую переменную внутри приложения? Или может еще где-то. Или может какой-то другой метод хранения данных о пользователях есть? Буду очень благодарна за советы. Спасибо
0
|
|
| 14.01.2022, 12:58 | |
|
Ответы с готовыми решениями:
209
Как и в каком виде хранить файлы в приложении
Как правильно хранить и использовать константы в WPF приложении |
|
|
|||
| 17.01.2022, 05:59 | |||
|
- есть приложение, предоставляющее работу с пользователями - при первом запуске инициализируется БД, и выводит диалоговое окно настройки администратора. Это типичный сценарий для всяких CMS. - все данный храняться в папке "Data" (можно и Users, название не принципиально) - при удалении этой папки считается что пользователь затер ВСЕ и хочет начать сначала (создать админа и т.д.)
1
|
|||
|
|
||||
| 17.01.2022, 10:08 | ||||
|
Про наличие ХХ администраторов с ХХ хэшами вопрос пока отложу. ![]() Добавлено через 6 минут Это должен быть абсолютно внешний и защищённый ресурс, в котором нельзя ничего изменить и удалить через просто "взять и стереть". Тогда мы даже удалив, имеем состояние "админ уже зарегистрирован". Но и если вы вдруг решили Действительно переустановить программу на компьютере, или вторую версию установить. Опа... нереально в силу того что мы "защитили первого администратора". Замкнутый круг. Пока это не будет решено, бессмыслено придумывать что-то. Преподаватель всегда может ответить "а если я теперь сделаю...". Даже локальная БД не поможет. Он же тоже может там стереть строку? Добавлено через 7 минут Kyra90, я бы предложил такой вариант. По-видимому предподаватель хочет от вас увидеть решения. Возможно больше одного. Но явно возник закономерный вопрос - как далеко можно зайти в поисках, так как почти все решения не имеют гарантии от чтения, изменения. Я бы предложил собрать все предложенные варианты и уточнить у препода. Какой он утвердит, тот и сделать.
0
|
||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
||||||||
| 17.01.2022, 10:25 [ТС] | ||||||||
|
1. Первый запуск приложения должен определяться 2. При первом запуске приложения уже должен существовать пользователь "Администратор", которому при первом запуске должен быть назначен пароль 3. "Администратор" имеет право создавать пользователей, пользователь с правами администратора имеет право создавать пользователей, пользователь без прав администратора не имеет право создавать пользователей 4. "Администратор" имеет право менять пароль любому пользователю, пользователь с правами администратора имеет право менять пароль любому пользователю, кроме пользователя "Администратор", пользователь без прав администратора имеет право менять пароль только себе 5. "Администратор" имеет право дать или забрать права администратора любому пользователю, кроме себя, пользователь с правами администратора имеет право дать или забрать права администратора любому пользователю кроме пользователя "Администратор", пользователь без прав администратора не имеет доступа к функции распределения прав администратора ТО есть другими словами: Есть программа, в которой введены какие-то пользователи. Приходит какой-нибудь Вася за комп, копирует папку "Users" в другое место, из папки программы ее прибивает и запускает прогу. Программа предлагает ему создать Администратора (так как не находит папку "Users"), он (Вася) ее создает, а потом перемещает из скопированной папки пользователей обратно в папку программы (всех, кроме Администратора). Таким образом Вася, по факту, меняет пароль Администратора. Правильно? Вот по этому и возник вопрос. Сейчас, после Вашего ответа вижу 2 способа решения: 1. То, что спрашивала вначале, как сделать так, чтоб пользователь Администратор не зависел от папки Users. и 2-й, чтоб обойти вышеуказанную проблему, может есть возможность сделать так, чтоб скопированные пользователи, при возвращении обратно в папку программы, были недоступны к использованию? Добавлено через 12 минут ![]() Добавлено через 3 минуты HF, Просто по логике все верно. Изменить пароль Администратора должен иметь возможность только сам Администратор из программы, либо очистить программу полностью (удалив, например Users) запустив ее как только установленную
0
|
||||||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|||||||
| 17.01.2022, 11:18 [ТС] | |||||||
0
|
|||||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
| 17.01.2022, 11:21 [ТС] | |
|
Вот если так хранить пароль админа, реально?
Нет пароля - первый запуск, а если пароль есть, то с папкой Users можно делать что хочешь. Пользователя Администратор там все равно нет
0
|
|
|
|
|||||||||
| 17.01.2022, 12:32 | |||||||||
|
Расписываю по шагам: Запускается прога - если файл есть, то считывается полностью в некий массив структур: -имя -роль -хеш пароля. 1. Предлагается ввести учетные данные админа. Вводятся пользователем. Если его хеш совпал с тем, что в файле (уже в памяти в структуре), то показываем содержимое структуры на форме. Если не совпал - гуляй вася, жуй опилки.. 2. Если при запуске проги файла не оказалось - предлагается создать новый файл с новыми учетными данными. Создали, вошли. Теперь подмена файлов ничего не даст, так как в памяти находится информация из нового файла. И чтобы прочесть старый, нужно выйти (разлогиниться), и залогиниться в тот старый файл, положив его на место нового. Ну и тут повторяется п.1. Мои файлы выглядят вот так:
По поводу "вечного" Админа: как вариант, заведите некоего "системного админа" прям в коде с динамическим паролем, который каждый час/день/неделю разный. Алгоритм его формирования известен только вам. Самого пароля в коде нет, он вычисляется от функции времени F(t), заносится в кучу и там сравнивается с введенным только при попытке авторизации. Но как правильно заметил Wolfdp, зачем это надо? Если папку утащили, то предполагается "новый запуск" приложения с созданием учеток с нуля. Как уже было сказано выше, подменой файлов при новом админе прочитать данные не получится. Так же, предусмотреть ситуацию, когда файл есть, в нем есть сведения о пользователях, но отсутствует учетка админа - в таком случае файл считать Broken и так же ничего из него не выводить. Добавлено через 4 минуты Ну что вы как дети, е-мое )
1
|
|||||||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|||
| 17.01.2022, 12:47 [ТС] | |||
![]() И что Вы скажете по поводу моего предыдущего ответа с кодом?
0
|
|||
|
|
|||
| 17.01.2022, 12:52 | |||
|
0
|
|||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|||
| 17.01.2022, 12:53 [ТС] | |||
|
0
|
|||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|||
| 17.01.2022, 13:21 [ТС] | |||
|
wizard41, Если не сложно, можете поделится кодом, как записывать пользователей, чтоб получать
Добавлено через 10 минут
0
|
|||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
| 17.01.2022, 13:48 [ТС] | |
|
0
|
|
|
|
||
| 17.01.2022, 14:08 | ||
|
Я, проникшись вашим заданием, решил сделать библу, которую можно подключить хоть к консоли хоть к вин-формам, и управлять юзерами, которые находятся в зашифрованном файле. В дальнейшем, можно расширить функционал, добавив работу с БД различных провайдеров.. Но это если терпения хватит ) В таком случае - как ваши параметры в Properties.Settings будут сочетаться с этой DLL? Можно, конечно, но пока даже примерно не думал как. Возьмите, на пример, любой портабельный менеджер паролей. Как она работает? База есть -> входи с паролем. Базы нет -> создавай новую. Пароль забыл? -> иди нафиг. И все. Зачем велики плодить??
1
|
||
|
|
||
| 17.01.2022, 14:11 | ||
![]() А что препод скажет, увидев "библу"?
0
|
||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
| 17.01.2022, 14:13 [ТС] | |
|
0
|
|
| 17.01.2022, 14:15 | |
|
0
|
|
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
| 17.01.2022, 14:29 [ТС] | |
|
0
|
|
| 17.01.2022, 14:29 | |
|
Где хранить информацию в WPF приложении чтобы её можно было переносить с приложением на любой компьютер? Где лучше хранить строку подключения к sql? Как хранить переменную в приложении Где лучше хранить рисунки в приложении? Как хранить в приложении большой объем текста Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|