akinwunmi Ответов: 1

Как сделать мое имя пользователя и пароль чувствительными к регистру в C# windows form


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

Что я уже пробовал:

 SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "Select * from Registration where Uname=@user and Password=@pass collate Latin1_General_CS_AS";
            cmd.Parameters.AddWithValue("@user", txtuser.Text);
            cmd.Parameters.AddWithValue("@pass", txtpass.Text);
//          

PIEBALDconsult

Никогда не храните пароли таким образом.

https://www.codeproject.com/Tips/186585/Password-Storage-How-to-do-it
https://www.codeproject.com/Articles/704865/Salted-Password-Hashing-Doing-it-Right
https://www.codeproject.com/Articles/608860/Understanding-and-Implementing-Password-Hashing
https://www.codeproject.com/Articles/14537/The-Art-Science-of-Storing-Passwords

Maciej Los

Мой виртуальный 5!

Patrice T

Что заставляет вас думать, что база данных не чувствительна к регистру?

Richard Deeming

Пароли должен будьте чувствительны к регистру. Хранение их должным образом, как уже упоминалось выше, позаботится об этом.

Имя пользователя не должно будьте чувствительны к регистру. Зачем тебе это нужно john, John и JOhn быть тремя отдельными пользователями? Не говоря уже о дополнительной нагрузке на пользователей, заставляющей их помнить точный случай своего имени пользователя.

1 Ответов

Рейтинг:
0

ZurdoDev

Если вам действительно нужно иметь пароли таким образом, то измените свой оператор COLLATE на SQL_Latin1_General_CP1_CS_AS. Это сделает пароль чувствительным к регистру.


akinwunmi

он дал мне неправильный синтаксис рядом с SQL_Latin1_General_CP1_CS_AS

ZurdoDev

Затем вам нужно будет исправить синтаксис. Не уверен, что ты хочешь, чтобы я тебе сказал. Ты что-то неправильно набрал.

akinwunmi

это код
УМК.Свойства commandtext = "выбрать * из регистрации, где команде uname=@пользователя и пароль=@пройти SQL_Latin1_General_CP1_CS_AS";

ZurdoDev

Нужно это слово разобрать.