|
45 / 45 / 5
Регистрация: 04.01.2010
Сообщений: 337
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Создание системы регистрации в программе30.06.2013, 18:06. Показов 21476. Ответов 8
Захотелось мне написать/дополнить статью про создание системы авторизации в программе при помощи xml файла. Если статья написана не в том разделе прошу перенести.
Делать мы всё будем на одной форме для простоты обучения. (Самостоятельно вы сможете разделить регистрацию и вход по разным формам). Или же сделать например скрытие одних элементов и появление других черед Panel. 1) Для начала создадим новый проект "Приложение Windows Forms". 2) На данную нам Form1 добавим следующие элементы: На форме расположены:
4) Но пока мы оставим его и перейдём в начало файла и после:
5) Так же добавим "публичную" переменную defpath для простоты изменения пути к Xml файлу в дальнейшем.
6) Создадим событие создания xml файла: Кликните здесь для просмотра всего текста
7) В Form1_load который мы попадали ранее, (для того что бы создать xml файл если его ещё нет) добавим:
Кликните здесь для просмотра всего текста
9) Раз уж мы теперь можем вычислить ID нового пользователя то можно добавить событие регистрации нового пользователя: Кликните здесь для просмотра всего текста
О нём я расскажу немного подробнее. Мы снова проверяем есть ли xml файл (простое избегание ошибок - вдруг файл был удалён во время работы программы). В xml добавляем нового пользователя с номером (номер мы получаем из события созданного ранее). 10) Далее вернёмся в конструктор и добавим событие для кнопки регистрации (двойной щелчок по ней в конструкторе):
Можно попробовать запустить программу и протестировать запись xml файла, он должен получится таким (я вводил сначала пользователя yura097 с паролем 12345, а затем пользователя admin с паролем parol):
11) Если у вас всё получилось то можно приступить к созданию события входа: Кликните здесь для просмотра всего текста
В данном событии мы сравниваем наши сточки из полей логина и пароля с входа со всеми пользователями в нашем xml файле. Если пользователь найдет то будет выведено сообщение "Успешный вход". Если же пользователь не найден и список пользователей закончен то будет выведено сообщение "Неверный логин и пароль". Конечно же вместо сообщения "Успешный вход" можно открывать другую форму и так далее. 12) Конечно же нужно не забыть вернуться в конструктор и создать событие для кнопки входа:
Вот на всякий случай полный код программы: Кликните здесь для просмотра всего текста
Конечно же тут нет например "запоминания пароля" или "удаления пользователя". Так же отсутствует какое либо шифрование. Но возможно я расскажу вам об этом в дальнейшем. Да и в принципе вы сможете сделать всё это сами. Для определённой красоты можно элементы входа и регистрации поместить на панели и сделать дополнительно кнопку "регистрации", а на панели с регистрацией "отмена" и "ок". Ну в общем это всё ваша фантазия. Вы можете для красоты в текстовых полях пароля включить свойство UseSystemPasswordChar для скрытия пароля при вводе. Вообщем пора остановиться ибо "добавлять" можно бесконечно. Спасибо за прочтение, об ошибках конечно же сообщайте. Так же возможно о способах оптимизации.
2
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30.06.2013, 18:06 | |
|
Ответы с готовыми решениями:
8
Создание системы регистрации/авторизации
Режим регистрации в программе тестирования |
|
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
|
|
| 01.07.2013, 01:11 | |
|
Для начинающих может и не плохо, но сугубо для начинающих. Насчет оптимизации кода - прочитайте более подробно про способы работы с хмл файлами, в частности про сериализацию, Linq to XML (это при желании). Кое где не совсем логичные названия переменных. Не путайте что такое событие и функция. Наконец - представьте сколько вам кода придется изменять при необходимости добавить еще адрес электронной почты пользователя? И конкретная вещь - нахождение максимального айди пользователя и преобразование его в строку - зачем (8 пункт)? Почему не оставить старый добрый инт?
0
|
|
|
Master of Orion
|
|||||||
| 01.07.2013, 03:32 | |||||||
|
yura097, как уже сказано выше, почитайте про сериализацию. Можно добиться того же, буквально в 3-4 строчки.
Что добавлю 1)
Забавно, но ладно2) почему функция ReadDocument проверяет валидность пароля? Она просто должна считать для нас данные. А проверкой должен заниматься какой-нибудь метод IsValidLoginPassword(string login, string password). Соответственно и называться они должны так, а не loget, passget. 3) собственно вытекает из предыдущего пункта, метод MaxID оказывается ненужным. 4) много неочевидных конструкций:
А в целом очень даже недурно
0
|
|||||||
|
Master of Orion
|
|||||||||||||||||||||
| 01.07.2013, 04:15 | |||||||||||||||||||||
|
В общем, примерно так я себе это представляю:
1) создаем новое WPF-приложение, называем его как хотим (WPF просто потому, что его исходный код легко выкладывать 2) пишем следующую разметку:
3) исходный код формы:
В результате получаем довольно приятное приложение с возможностью авторизации, при этом в явном виде пароли мы не храним, а используем для этого распространенный хэш MD5. Работу приложения можно потестить, исходники прикладываю. P.S. Из WPF там только 15 строчек разметки, причем довольно все понятно, что к чему
Поэтому пугаться что это не винформа не стоит. Дочитавшим до сюда - печеньку ![]() P.P.S. В приложенном исходнике файлы по-человечески размещены в свои файлы.
1
|
|||||||||||||||||||||
|
45 / 45 / 5
Регистрация: 04.01.2010
Сообщений: 337
|
||
| 01.07.2013, 11:02 [ТС] | ||
|
Я собственно просто нашел решение для своей проблемы и решил поделиться этим решением с людьми.
0
|
||
|
45 / 45 / 5
Регистрация: 04.01.2010
Сообщений: 337
|
||
| 01.07.2013, 11:12 [ТС] | ||
![]() Если уж не хватит ума на то, что нужно бы создать событие для кнопки то зачем вообще копировать этот код...
1
|
||
|
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 14
|
||
| 29.05.2014, 00:00 | ||
|
Добавлено через 4 минуты Все спасибо разобрался
0
|
||
|
0 / 0 / 0
Регистрация: 02.01.2019
Сообщений: 57
|
|
| 16.07.2019, 00:33 | |
|
Спасибо сделал регистрацию и вход))
0
|
|
| 16.07.2019, 00:33 | |
|
Помогаю со студенческими работами здесь
9
Задумка системы регистрации Яндекес и системы автоматической регистрации в кат
Разработка диаграмм UML Информационной системы регистрации Создание регистрации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|