Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/55: Рейтинг темы: голосов - 55, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 13

Проверить в базе логин и пароль для авторизации

25.02.2017, 01:22. Показов 10749. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Пишу простенькое приложение на C# с использование wpf и MySQL.
Пытаюсь реализовать авторизацию пользователя.
Логин и пароль находятся в базе, пользователь вводит в определенные поля свои логин и пароль и если они совпадают с теми что уже есть в базе, ему предоставляется доступ к программе.
Никак не удается сверить введенные данные с уже имеющимися в базе.

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
class Attempt
    {
        private SqlCommand cmd = new SqlCommand();
        private SqlConnection conn = new SqlConnection("Server=.\\SQLEXPRESS;Database=DiplomSetka; Integrated Security=true");
 
        private void RecordDB(string val) //записываю в базу данные пользователя при регистрации, работае
        {
            conn.Open();
            cmd = new SqlCommand(val, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        public void AddToDb(string userName, string userSurname, string login, string password)
        {
            RecordDB(
                "insert into [ProgrammUser](UserName,UserSurname,UserLogin,Password) values (" + "'" + userName + "','" + userSurname + "','" + login + "','" + password + "')"
                );
        }
        public bool CheckDB(string login, string password) // проверка логина и пароля, не работает
        {
            conn.Open();
            cmd = new SqlCommand("SELECT UserLogin, Password FROM [ProgrammUser] ", conn);
            SqlDataReader rd = cmd.ExecuteReader();
 
            bool comand = false;
            while (rd.Read())
            {
                string userLogin = rd["UserLogin"].ToString();
                string passwordDB = rd["Password"].ToString();
                if (login == userLogin && password == passwordDB)
                {
                    conn.Close();
                    comand = true;
                    return comand;                    
                }                
            }
            return comand;            
        }
    }
метод CheckDB должен возвращать true или fals в зависимости от совпадения в базе, дальше уже идет работа с wpf
почему то постоянно возвращает fals
часть с wpf реализована, работает нормально

заранее спасибо !
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.02.2017, 01:22
Ответы с готовыми решениями:

Брать логин и пароль для авторизации в БД из TextBox
есть строка для подключения к ДБ из Excel: cn.Open "Data Source = MyDB; User Id = sysdba; Password = sysdba; " в таком виде...

Форма авторизации, не могу проверить хешированный пароль в базе данных
Здравствуйте. Пишу форму авторизации. Пользователь находится, но пароль проверку не проходит. Запрос из переменной $query_select_email...

Подключение Формы к БД MySQL для создания авторизации (логин/пароль)
Здравствуйте, форумчани. Я очень давно блуждаю вокруг - да около, но все боялся трогать дельфи как инструмент работы с Базами Даных, но мне...

5
 Аватар для Andrew_Montana
49 / 45 / 41
Регистрация: 12.10.2014
Сообщений: 234
25.02.2017, 14:35
Проверил у себя Ваш метод CheckDB со своей таблицей, и.. возвращает true. Попробуйте использовать отладку и посмотреть по шагам всё ли совпадает
0
 Аватар для w0nna
0 / 0 / 0
Регистрация: 31.03.2022
Сообщений: 2
15.07.2022, 13:53
Просто уберите пробелы которые автоматом берутся из БД.
C#
1
userLogin = userLogin.Replace(" ", string.Empty);
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
15.07.2022, 17:28
KoJIbac, Проще сделать так.
C#
1
2
3
4
5
6
7
8
9
10
11
12
public bool CheckDB(string login, string password) // проверка логина и пароля, не работает
        {
            conn.Open();
           SqlCommand com= new SqlCommand("SELECT UserLogin FROM [ProgrammUser] where UserLogin = @login 
      and Password = @pass", conn);
           SqlParameter par = new SqlParameter("@login", login);
            com.Parameters.Add(par);
            par = new SqlParameter("@pass", password);
            com.Parameters.Add(par);
            SqlDataReader rd = cmd.ExecuteReader();
            return rd.HasRows;
        }
Добавлено через 2 минуты
KoJIbac, и это
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void RecordDB(string val) //записываю в базу данные пользователя при регистрации, работае
        {
            conn.Open();
            cmd = new SqlCommand(val, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        public void AddToDb(string userName, string userSurname, string login, string password)
        {
            RecordDB(
                "insert into [ProgrammUser](UserName,UserSurname,UserLogin,Password) values (" + "'" + userName + "','" + userSurname + "','" + login + "','" + password + "')"
                );
        }
тоже перепишите на параметры иначе кто нибудь вам дропнет базу через текстбокс.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18286 / 14209 / 5368
Регистрация: 17.03.2014
Сообщений: 28,889
Записей в блоге: 1
15.07.2022, 17:55
Цитата Сообщение от Andreyip Посмотреть сообщение
SQL
1
2
SELECT UserLogin FROM [ProgrammUser] WHERE UserLogin LIKE @login 
      AND Password LIKE @pass
Жизнь хакеров точно станет проще от такой реализации. Вводим правильный логин, пароль % и вуаля!
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
15.07.2022, 18:00
OwenGlendower, Ну да с Like я переборщил)) Like нужно заменить на = Поправите, я не могу уже пост редактировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2022, 18:00
Помогаю со студенческими работами здесь

Форма авторизации логин\пароль на html + css
Нужна форма авторизации логин\пароль на html + css (без javascript). При нажатии на кнопку "Вход" пишется дата и время в файл...

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

При отладке формы авторизации стабильно неверный логин\пароль
При запуске, постоянно выскакивает сообщение об неверном логине\пароле. думал, может проблемы с базой, вернее со значением пароля, но...

Коннект к базе. Логин и пароль - переменные.
Хочу соединиться с базой через переменные. Логин и пасс хранятся в переменных типа CString. CString user = "user"; CString...

Проверить логин в бд (mssql) при авторизации
Делаю форму авторизации. Как при вводе логина проверить, занят ли он? Вот код формы с регистрацией: <?php $data = $_POST; ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь 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. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru