Я создал проверку входа в систему для подключения к приложению, но теперь у меня проблема, что во время подключения к приложению скажут мне, что ошибки с отключенными подключениями.Подтверждение входа для подключения к приложению C#
Мой сценарий для проверки:
SQL:
CREATE TABLE [Login]
(
username varchar(30) CHECK (username is not null AND username <> ''),
email varchar(30),
[password] varchar(50),
UNIQUE (username)
)
INSERT INTO dbo.Login values('admin', '[email protected]', HASHBYTES('md5',convert(varchar(50),'root')))
C#:
class LoginValidation : Login
{
public string connection = "Data Source=RADEK-PC\\SQLEXPRESS;Initial Catalog=Evidence;Integrated Security=True;";
public string loginVal, passwordVal;
public LoginValidation(string login, string password)
{
try
{
using (SqlConnection sql = new SqlConnection(connection))
{
sql.Open();
using (SqlCommand selectLogin = new SqlCommand("SELECT * FROM dbo.Login WHERE username = @login", sql))
{
selectLogin.Parameters.Clear();
SqlParameter subjektParam = new SqlParameter("@login", SqlDbType.VarChar, 30);
subjektParam.Value = login;
selectLogin.Parameters.Add(subjektParam);
selectLogin.Prepare();
using (SqlDataReader readerLogin = selectLogin.ExecuteReader())
{
while (readerLogin.Read())
{
if (readerLogin.IsDBNull(0) || readerLogin.IsDBNull(2))
continue;
loginVal = readerLogin.GetString(0);
passwordVal = readerLogin.GetString(2);
}
}
sql.Close();
}
}
}
catch (Exception e)
{
MessageBox.Show("Chyba: " + e);
}
if (login == loginVal && password == passwordVal)
{
Main main = new Main();
main.Show();
}
else
MessageBox.Show("Přihlašovací jméno nebo heslo neni správné");
}
}
ошибки Выход:
e {"A fatal internal error connection."} System.Exception {System.InvalidOperationException}
Входные данные:
login - > admin
password - > root
Пожалуйста, помогите мне с этой проблемой?
корректная Теперь СРЮ, теперь у меня есть хэш пароля в БД. Как я могу разобрать этот пароль для подтверждения для входа в приложение. Потому что теперь login == loginVal правильный, но пароль == passwordVal неверен, потому что passwordVal возвращает мне хеш-пароль. –
@RadekTarant: извините, я действительно не знаю, как шифровать и расшифровывать, это зависит от того, какой механизм вы использовали для шифрования. –
Я использую только это: HASHBYTES ('md5', convert (varchar (50), 'root' –