Что касается безопасности, это грязный прототип, следовательно, не содержит хеш-солей для паролей.Если неверные учетные данные отправлены, программа выдает ошибку
Я тестирую некоторый код C# MySQL, и я, когда правильные учетные данные были отправлены в базу данных, программа возвращает значение 1, что означает правильность.
Однако, если значения проверяются, которые не соответствуют результаты, которые я получаю исключение:
Необработанное исключение типа «System.FormatException» произошло в Server.exe Дополнительная информация: Входная строка не была в правильный формат.
public int CheckLoginCredentials(String username,string password)
{
string query = "SELECT * from testTable.user WHERE username='" + username + "' and password='" + password + "'";
int Count = -1;
//Open Connection
if (this.OpenConnection() == true)
{
//Create Mysql Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//ExecuteScalar will return one value
try
{
Count = int.Parse(cmd.ExecuteScalar() + "");
}
catch (Exception e)
{
throw e;
}
//close Connection
this.CloseConnection();
return Count;
}
else
{
return Count;
}
}
Я попытался бросить исключение, но он выходит из строя сервер. Как я могу изящно решить проблему?
Кроме того, изменить код следующим образом: 'Count = (Int32) cmd.ExecuteScalar();' – Rob
Вам не нужно 'ToString()', а затем проанализируйте строку .. это потеряно работа. Результат - это целое число в штучной упаковке, вам просто нужно указать на int, как указано выше: – Rob
@Rob: спасибо за новую информацию. –