Ошибка преобразования при преобразовании varchar в int mvc C# - PullRequest
0 голосов
/ 15 марта 2020

Я получаю ошибку времени выполнения

Преобразование не удалось при преобразовании varchar в int

с этим кодом:

public ActionResult Index(Model1 m)
{
    string q = "select username, password from login where username=@username and password=@password ";

    con.Open();

    SqlCommand cmd = new SqlCommand(q, con);
    cmd.Parameters.AddWithValue("@username", m.username).ToString();
    cmd.Parameters.AddWithValue("@password", m.password).ToString();

    SqlDataReader dr = cmd.ExecuteReader();

    if (dr.Read())   // getting error at this point
    {
        return RedirectToAction("upload");
    }
    else
    {
        ViewData["Message"] = "invalid username or password";
    }

    con.Close();

    return View();
}

1 Ответ

0 голосов
/ 15 марта 2020

Все, что вам нужно сделать, - в этом ответе , включая использование Entity Framework вместо этого древнего, многогранного способа запуска SQL, который не способствует внедрению хороших методов проектирования ОО (разделение проблем между вашими бизнес-логиками). c слой в вашем контроллере и ваш уровень доступа к данным)

По крайней мере, взгляните на переключение на использование Dapper для доступа к данным - это сделает ваш код чище и ваша жизнь намного проще

Используйте первый связанный ответ, чтобы разработать класс, который солит и хэширует ваши пароли и хранит хэши, а не пароли в виде простого текста, и вызывайте его, чтобы гарантировать надежную защиту ваших паролей. Хранение паролей в незашифрованном виде является причиной, по которой такие службы, как HaveIBeenPwned, должны существовать; люди повторно используют пароли, и когда вы сохраняете ваши пароли в незашифрованном виде, и ваша система взломана, вы обнаружите приятный и легкий поиск имени пользователя: пароль, который можно использовать в другом месте, где взломан, и у хакера есть только имя пользователя. Частично это вина пользователей за повторное использование пароля, но в основном ваша вина за то, что они не хранят свои данные надежно. Пожалуйста, расставьте приоритеты

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