|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
Хранить строку в приложении14.01.2022, 12:58. Показов 11044. Ответов 209
Метки нет (Все метки)
Всем привет. Помогите, пожалуйста с курсовой.
Значит задача: Создать приложение с пользовательским доступом (логин/пароль, пользователь может быть пользователем, может быть админом). Значит я делаю следующим образом: В программу уже вшит пользователь "Администратор", при первом запуске предлагается создать ему пароль. Как только пароль создан рядом с приложением создается папка "Users" (по ее наличию, собственно, и проверяется первый запуск), где в файлах в зашифрованном виде хранится информация о пользователе. Препод говорит, что это не совсем правильное решение, и файла с данными "Администратор" в папке с пользователями быть не должно, так как (цитирую дословно) "Я скопирую пользователей в другое место, прибью папку Users, запущу программу и получу доступ к Администратору, снова введя пароль, потом верну пользователей назад" ![]() Можно ли как то хранить строковую переменную внутри приложения? Или может еще где-то. Или может какой-то другой метод хранения данных о пользователях есть? Буду очень благодарна за советы. Спасибо
0
|
|
| 14.01.2022, 12:58 | |
|
Ответы с готовыми решениями:
209
Как и в каком виде хранить файлы в приложении
Как правильно хранить и использовать константы в WPF приложении |
|
|
|||||||||||
| 24.01.2022, 12:54 | |||||||||||
|
Kyra90, в приложении готовая библа для шифр/расшифр. подключите к своему проекту.
Там только два доступных метода: EncryptString DecryptString В проекте сделайте
2
|
|||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 24.01.2022, 13:33 | |
|
Чуть-чуть хотел бы дополнить.
Хеширование от криптографии отличается тем, что хеширование работает только в одну сторону. Это нужно для уникализации. Хеширование и криптография тесно связаны. Для криптографии используются ключи, например слово "дятел". Но "дятел" слишком легко раскриптовать. Поэтому слово "дятел" хешуруют, чтобы получить уникальный ключ и вот уже этот ключ используют для криптографии. "Респечатать" SHA256, который Вы указали выше, на данный момент — невозможно. В некоторых случаях хеши используют без криптографии. Например пароли пользователей только хешируются — то есть даже сервер не знает о том, что пользователь ввёл "qwerty12345", он лишь получает набор кракозябр, которые сохраняет в б.д. Каждый раз, когда пользова отправляет серверу "qwerty12345" — программа хеширует пароль и отправляет уже хеш на сервер. Поэтому не важно откуда Вы пишите пароль: на сайте, или в приложении; хеш будет один и тот же.
3
|
|
|
|
|||
| 24.01.2022, 15:38 | |||
|
Но по итогу завел туда же и хеш - он тоже прокручивается через механизм AES и становится видоизмененным. В рамках данной задачи этого предостаточно. Препод загрустит )
0
|
|||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||
| 24.01.2022, 15:42 | ||
|
Если всегда учиться коду, который берут "с низов" -- дальше низов не продвинешься.
0
|
||
|
|
||
| 24.01.2022, 15:46 | ||
|
А так то да, конечно лучше всегда изучать что-то новое. P.S. У меня лично такое было с LINQ.. Сперва я подумал, что это вообще не про меня. А сейчас думаю - как я столько времени без него жил.
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||
| 24.01.2022, 15:57 | ||
|
wizard41, я начал учить WPF, не зная ООП вообще.
От тебя что-то просят на форуме, мол "сделайте сами вот этот вот участочек кода". А я просто-напросто не въезжаю в сам вопрос. Вся проблема в том, что я не знаю как это должно выглядить в конечном результате. Меня просят типо "сделайте модель для иммутабельного типа с иммутабельной коллекцией", а в моей голове это звучит примерно так:
Видя конечный результат мне было легче изучать код: гуглишь тип, читаешь о нём, читаешь его примеры, разбираешься. А главным примером служит код, который и так есть "на руках". Так что я очень сильно ЗА сложные примеры.
0
|
||
|
|
|||
| 24.01.2022, 16:03 | |||
0
|
|||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||
| 24.01.2022, 16:05 | |||
![]() Добавлено через 43 секунды
0
|
|||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 24.01.2022, 16:14 | |
|
1
|
|
|
|
||
| 24.01.2022, 23:30 | ||
Ну Wolfdp... Всю затею сломал )В общем так, я переосмыслил, передумал, перечеркнул, переделал. Концепция слегка поменялась. Некоторые вещи упростил. И некоторые выкрутасы добавил. Kyra90, вы на каком фрейме? 4.х или 5 и выше? У меня под 5.0 библа пишется. К вин-формам 4.х она не подключится. Ну, на всякий случай.
1
|
||
|
|
||||||||||||||||
| 26.01.2022, 17:29 | ||||||||||||||||
|
Тоже каша, но лучше чем было:
class User
class UManager
class Program
0
|
||||||||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 26.01.2022, 17:53 | |
|
Жду финальную версию
, без каши.
0
|
|
| 26.01.2022, 18:20 | |
|
Не по теме: *Поставил звёздочку на "Watch"*
0
|
|
|
|
|||||||||||||||||||||||||||||||
| 27.01.2022, 00:49 | |||||||||||||||||||||||||||||||
|
Такс, совсем забыл про то, что нужно иметь возможность менять роли пользователей.
В представленных выше классах User, Moderator, и Administrator это можно было бы сделать, путем глубокого копирования с приведением типов, НО! Столкнулся с проблемой при создании новых экземпляров объектов типа User: он содержит конструктор, и потому требует в аргументы Имя и Пароль. А пароля нет - есть только хеш. Можно было бы предварительно сохранять эти значения и потом присваивать созданным (преобразованным) объектам, но не хочется делать эти поля доступными для изменения извне. В общем, откатился к прежнему виду класса User, немного видоизменив его: class User
Теперь изменений ролей пользователей выглядит просто:
Защиты от изменения роли самому себе пока нет.
Получение списка пользователей согласно правам текущего - сделано внутри класса User. Добавлено через 2 минуты Да, конечно же
2
|
|||||||||||||||||||||||||||||||
|
|
|||||||||||
| 28.01.2022, 00:18 | |||||||||||
|
Издание 3-е, переработанное и дополненное (под ред. wizard41)
![]() Изменения: • класс User полностью скрыт от использования во внешней среде • для обмена пользователями между приложением и библой предоставлена публичная структура StructUser • методы класса UManager работают только с залогиненным пользователем (невозможно управлять системой не пройдя процедуру аутентификации) • тихим сапом приближаемся к DI... ![]() ConsoleTest: class Program
Добавлено через 1 минуту Для тестов временно добавлены два пользователя по умолчанию в список зарегистрированных пользователей
0
|
|||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 28.01.2022, 10:24 | |
|
wizard41, а события где?
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||||||
| 28.01.2022, 13:26 | |||||||||||
|
Я считаю, что подобные записи -- лишают код гибкости
0
|
|||||||||||
| 28.01.2022, 13:26 | |
|
Где хранить информацию в WPF приложении чтобы её можно было переносить с приложением на любой компьютер? Где лучше хранить строку подключения к sql? Как хранить переменную в приложении Где лучше хранить рисунки в приложении? Как хранить в приложении большой объем текста Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|