Member 12761341 Ответов: 2

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


Я делаю форму входа в систему и она прикреплена к базе данных когда я получаю данные она показывает такую ошибку:



Строка 23: строка запроса = "выбрать количество(*) из логическое_имя_пользователя Где UserName ='" + txtBox1.Текст + "и пропуск" + txtBox2.Текст + "'";
Строка 24: SqlCommand cmd = new SqlCommand(query, con);
Строка 25: вывод строки = cmd.ExecuteScalar ().Метод toString();
Строка 26: if (output = = " 1")
Строка 27: {

Исходный файл: c:\Users\Atta\Documents\Visual Studio 2012\WebSites\WebSite3\Default2.aspx. cs строка: 25

трассировка стека:

он показывает на строке номер 25. в то время как я использую такой тип кода за формой входа в систему:

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;


public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ToString());
        con.Open();
        string query = "select count(*) from userlogin where username ='" + txtBox1.Text + "'and pass '" + txtBox2.Text + "'";
        SqlCommand cmd = new SqlCommand(query, con);
        string output = cmd.ExecuteScalar().ToString();
        if (output == "1")
        {
            Session["user"] = txtBox1.Text;
            Response.Redirect("Login Successful");
        }
        else
        {
            Response.Write("Login Faild");
        }
    }
}

F-ES Sitecore

А ошибка есть?

Кстати, вам следует погуглить, как использовать параметризованные запросы, поскольку ваш код уязвим для атак SQL-инъекций, а также проблем, когда люди имеют апострофы в своих именах пользователей или паролях.

StM0n

Какая ошибка... есть некоторые, которые могут произойти.

Извините, что спрашиваю, Но знаете ли вы об этом обстоятельстве, что ваша функция входа в систему открыта для sql-инъекции?!

Richard Deeming

Репост
Вы уже разместили это в ASP.NET форум:
https://www.codeproject.com/Messages/5413429/how-to-connect-database-to-asp-net-form.aspx[^]

2 Ответов

Рейтинг:
0

Suvendu Shekhar Giri

Не вдаваясь в ваш код и детали, я мог бы сказать, что ошибка связана с отсутствующим оператором equals в sql-запросе.

Замените строку № 23 следующей и посмотрите, поможет ли это-

string query = "select count(*) from userlogin where username ='" + txtBox1.Text + "'and pass ='" + txtBox2.Text + "'";

Но подождите, это еще не все.
Ваш код уязвим для SQL-инъекция[^].
Приложив немного больше усилий, вы можете предотвратить SQL-инъекцию с помощью хранимой процедуры или параметризованного запроса. Пожалуйста, следуйте приведенной ниже ссылке для получения дальнейших указаний-
Как: защита от SQL-инъекций в ASP.NET[^]
[^]

Надеюсь, это поможет :)