Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871

Как сделать форму авторизации?

10.06.2011, 17:41. Показов 5375. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Меня интересует такой вопрос: как создать логин и пароль, после ввода которого открывается нужный мне фаил(форма)?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2011, 17:41
Ответы с готовыми решениями:

Как программно авторизоваться на сайте через форму авторизации?
Добрый день. Как можно программно авторизоваться на сайте через форму авторизации и хранить сессию? На примере...

Как сделать редирект на другой сайт в авторизации
Дана авторизация Вконтакте, мне необходимо сделать в авторизации редирект на другую страницу: например на site.com/vk.php, так чтобы после...

Как сделать запароленную форму?
как сделать пароль? то есть у меня есть пароль 217, вот дан textbox, ты вводишь туда 217 и он проверяет, если пароль правильно введен он...

14
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
10.06.2011, 18:27
Пароли и логины обычно хранятся либо в базе данных либо в файле который лежит в недоступном для пользователя месте. Для пущей важности можно пароль зашифровать.
0
 Аватар для dzjundzja88
289 / 234 / 32
Регистрация: 09.02.2011
Сообщений: 435
10.06.2011, 18:28
Любой! Делай проверку, допустим если пароль "5623", то открывай форму1, а если "5588", то форму2.
В чем проблема? Зачем придумывать спец.пароли? Если уже так сильно нужно, то дописывай в конец каждого пароля определённую букву или цифру, которая и будет идентификатором для определения нужной формы.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
10.06.2011, 18:32  [ТС]
Можете код написать?
0
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
10.06.2011, 18:35
сделай текст-бокс логин и текст-бокс пароль. и кнопку, при нажатие на которую происходит событие открытия файла. Только непонятно зачем оно тебе нужно, ведь на него не поставится пароль, если кто-то захочет открыть его своими ручками.
0
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
10.06.2011, 18:41
Написать было не сложно. Вот:
Вложения
Тип файла: rar LoginPassword.rar (61.2 Кб, 109 просмотров)
1
 Аватар для dzjundzja88
289 / 234 / 32
Регистрация: 09.02.2011
Сообщений: 435
10.06.2011, 18:47
Считываешь с формы пароль и проверяешь его последнюю букву. Если она равна "d", то открывай первую форму, а если "b", то вторую
C#
1
2
3
4
5
6
7
8
9
10
            string password = "5652156d";  //твой считанный с формы пароль
            switch (password.Substring(password.Length - 1))
            {
                case "d":
                    form1.ShowDialog(); //открываешь форму1
                    break;
                case "b":
                    form2.ShowDialog();//открываешь форму2
                    break;
            }
Надеюсь я тебя правильно понял
1
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
10.06.2011, 19:30  [ТС]
Спасибо)))
0
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
10.06.2011, 19:31
А зачем так сложно?

C#
1
2
3
4
5
6
7
8
9
10
//textBox1 - поле в которое мы вводим пароль
string pass = "1234567890";//наш счастливый пароль
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
        {
if( textBox1.text == "1234567890")
{
Form2 r2 = new Form2();//форм2 - нунжная форма
r2.Show()
}
}
1
0 / 0 / 0
Регистрация: 08.06.2025
Сообщений: 4
09.06.2025, 20:41
Какие должны быть библиотеки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static WindowsFormsApp2.Form1; (меняется в зависимости от названия проекта)
Добавлено через 1 минуту
Подключение к базе данных и быстрая проверка всё ли подключается корректно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static class ConnectionData
        {
            public static string ConnectionString = "Server=;Database=;Trused_Connection=True;";
        }
        private string currentStatusUser;
        public Form1()
        {
            InitializeComponent();
            SqlConnection connection = new SqlConnection(ConnectionData.ConnectionString);
            try
            {
                connection.Open();
            }
            catch(Exception ex)
            {
                connection.Close();
                MessageBox.Show("Closed"+ ex.Message);
            }
 
        }
Добавлено через 6 минут
Теперь попробуем войти и проверим есть ли такой пользователь или нет:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private bool Logining()
        {
            string qurry = "select Status from Пользователи where Login = @Login and Password=@Password";
            using(SqlConnection connection = new SqlConnection(ConnectionData.ConnectionString))
            {
                connection.Open();
                using(SqlCommand command = new SqlCommand(qurry, connection))
                {
                    command.Parameters.AddWithValue("@Login", textBox1);
                    command.Parameters.AddWithValue("@Password", textBox2);
                    object result = command.ExecuteScalar();
                    if (result != null)
                    {
                        MessageBox.Show(result.ToString());
                        currentStatusUser = result.ToString();
                        connection.Close();
                        return true;
                    }
                    else
                    {
                        MessageBox.Show("Введён неправильный логин или пароль");
                        textBox1.Clear();
                        textBox2.Clear();
                        connection.Close();
                    }
                }
                return false;
            }
        }
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
09.06.2025, 20:43
Цитата Сообщение от ushim Посмотреть сообщение
сделай текст-бокс логин и текст-бокс пароль. и кнопку, при нажатие на которую происходит событие открытия файла. Только непонятно зачем оно тебе нужно, ведь на него не поставится пароль, если кто-то захочет открыть его своими ручками.
Всё тут понятно.
Условное разделение учетных записей, в той же игре например, или ежедневнике, что бы юзвери "ходили прямо".
Кому надо и денуву ломают.
0
0 / 0 / 0
Регистрация: 08.06.2025
Сообщений: 4
09.06.2025, 20:45
Теперь проверим заблокирован ли пользователь в базе данных или нет, сколько дней назад он был в системе и если давно, то его заблокировали, если пользователь заходит впервые, то попросим сменить пароль:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
        private void Entering()
        {
            string qurry = "select id,AuthCol,Bloced,Status from Пользователи where Login=@Login and Password=@Password";
            using(SqlConnection connection = new SqlConnection(ConnectionData.ConnectionString))
            {
                connection.Open();
                using( SqlCommand command = new SqlCommand(qurry,connection))
                {
                    command.Parameters.AddWithValue("@Login", textBox1);
                    command.Parameters.AddWithValue("@Password", textBox2);
                    using(SqlDataReader reader = command.ExecuteReader())
                    {
                        int UserID = reader.GetInt32(reader.GetOrdinal("id"));
                        int AuthCol = reader.GetInt32(reader.GetOrdinal("AuthCol"));
                        int Bloced = reader.GetInt32(reader.GetOrdinal("Bloced"));
                        DateTime LastDate = reader.IsDBNull(reader.GetOrdinal("LastDate")) ? DateTime.MinValue : reader.GetDateTime(reader.GetOrdinal("LastDate"));
                        DateTime NowDate = DateTime.Now;
                        TimeSpan differensDate = NowDate.Date - LastDate.Date;
                        if(differensDate.Days > 30)
                        {
                            MessageBox.Show("fjj");
                            string qurryBloced = "update Пользователи set Bloced + 1 where id=@UserID";
                            using(SqlConnection connection1 = new SqlConnection(ConnectionData.ConnectionString))
                            { 
                                connection1.Open(); 
                                using(SqlCommand command1 = new SqlCommand(qurryBloced,connection1))
                                {
                                    command1.Parameters.AddWithValue("@UserID", UserID);
                                    command1.ExecuteNonQuery();
                                }
                            }
                            return;
                        }
                        if(Bloced > 0)
                        {
                            MessageBox.Show("gngjtn");
                            return;
                        }
                        if(AuthCol ==0)
                        {
                            reader.Close();
                            string update = "update Пользователи set AuthCol + 1 where id=@UserID";
                            using(SqlConnection connection1 = new SqlConnection(ConnectionData.ConnectionString))
                            {
                                connection1.Open();
                                using(SqlCommand command1 = new SqlCommand(update,connection1))
                                {
                                    command1.Parameters.AddWithValue("@UserID", UserID);
                                    command1.ExecuteNonQuery();
                                }
                                ChangePass changePass = new ChangePass();
                                changePass.Show();
                                connection1.Close();
 
                            }
                        }
                        else if(AuthCol !=0)
                        {
                            if(currentStatusUser=="Администратор")
                            {
                                reader.Close();
                                string update = "update Пользователи set AuthCol = AuthCol + 1 where id=@UserID";
                                    using (SqlCommand command1 = new SqlCommand(update, connection))
                                    {
                                        command1.Parameters.AddWithValue("@UserID", UserID);
                                        command1.ExecuteNonQuery();
                                    }
                                string update2 = "update Пользователи set LastDate = getdate() where id=@UserID";
                                using (SqlCommand command2 = new SqlCommand(update2, connection))
                                {
                                    command2.Parameters.AddWithValue("@UserID", UserID);
                                    command2.ExecuteNonQuery();
                                }
                                this.Hide();
                                AdminPanel ap = new AdminPanel();
                                ap.ShowDialog();
                                this.Close();
                            }
                        }
                    }
                }
            }
        }
Добавлено через 1 минуту
И последний блок, если текстбоксы не пусты, то выполняются верхние методы:
C#
1
2
3
4
5
6
7
8
9
10
        private void button1_Click(object sender, EventArgs e)
        {
            if(!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
            {
                if(Logining())
                {
                    Entering();
                }
            }
        }
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
09.06.2025, 20:46
Цитата Сообщение от dzjundzja88 Посмотреть сообщение
Считываешь с формы пароль и проверяешь его последнюю букву. Если она равна "d", то открывай первую форму, а если "b", то вторую
C#
1
2
3
4
5
6
7
8
9
10
            string password = "5652156d";  //твой считанный с формы пароль
            switch (password.Substring(password.Length - 1))
            {
                case "d":
                    form1.ShowDialog(); //открываешь форму1
                    break;
                case "b":
                    form2.ShowDialog();//открываешь форму2
                    break;
            }
Надеюсь я тебя правильно понял
Вот это дичь.
Теперь я видел всё.
3
 Аватар для Andrey-MSK
3343 / 2230 / 387
Регистрация: 14.08.2018
Сообщений: 7,528
Записей в блоге: 4
10.06.2025, 08:51
Цитата Сообщение от ЧИЧА3456 Посмотреть сообщение
where Login=@Login and Password=@Password
Никто, никогда, нигде не хранит пароли!!! Ни в БД, ни в файлах... Хранят хеш пароля и его сверяют.
2
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,733
Записей в блоге: 1
10.06.2025, 09:02
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Хранят хеш пароля и его сверяют.
Ещё и солью посыпают.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2025, 09:02
Помогаю со студенческими работами здесь

Как сделать такую форму

Как сделать форму очень маленьких размеров
Добрый день. Подскажите, пожалуйста, где можно изменить пределы размера формы в Windows. Программа не может сделать форму 70;70px....

c# как форму сделать только с одной кнопкой [закрытия]
в среде дельфай такая форма называеться диалог а в c# незнаю как сделать но мне обязательно надо что бы границы нельзя было раздвинуть а...

Сделать форму авторизации
Скажите как можно сделать авторизацию в виде формы, есть база MySql и таблица к примеру User как сделать что бы авторизация пользователей...

Не получается сделать форму авторизации
Всем привет. Пробую сделать форму авторизации вот тут: http://youran88.hol.es/ Ввожу логин и пароль - они верные, и в базе они точно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru