C# asp.net c中的登录页错误
我有一个登录页面,我写了代码登录管理部分,但它不工作,我不知道是什么问题,这是正确的代码仍然获得未经授权的访问。帮帮我C# asp.net c中的登录页错误,c#,asp.net,login-page,C#,Asp.net,Login Page,我有一个登录页面,我写了代码登录管理部分,但它不工作,我不知道是什么问题,这是正确的代码仍然获得未经授权的访问。帮帮我 string str = ConfigurationManager.ConnectionStrings["ottscon"].ConnectionString; using (SqlConnection con = new SqlConnection(str)) { SqlCommand cmd = new SqlCo
string str = ConfigurationManager.ConnectionStrings["ottscon"].ConnectionString;
using (SqlConnection con = new SqlConnection(str))
{
SqlCommand cmd = new SqlCommand("Select UserName,Password from login where UserName=@userid and Password=@passid", con);
con.Open();
cmd.Parameters.AddWithValue("@userid", TextBox1.ToString());
cmd.Parameters.AddWithValue("@passid", TextBox2.ToString());
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds= new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count>0)
{
Session["login"] = TextBox1.Text;
Response.Redirect("admintrator123/Default.aspx");
}
else
{
Label1.Text = "Unauthorized Access";
Label1.ForeColor = System.Drawing.Color.Red;
}
}
首先使用文本框内文本的值现有ToString返回对象文本框的类型: 尝试使用此SQL检查新SqlCommand中是否存在记录: 因此,您可以检查布尔值,而不是行的存在,并对正在发生的事情有更多的了解 在此之后,您可以通过以下方式读取值:
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
bool exist = reader.GetBoolean(0);
}
}
首先使用文本框内文本的值现有ToString返回对象文本框的类型: 尝试使用此SQL检查新SqlCommand中是否存在记录: 因此,您可以检查布尔值,而不是行的存在,并对正在发生的事情有更多的了解 在此之后,您可以通过以下方式读取值:
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
bool exist = reader.GetBoolean(0);
}
}
试一试
删除
cmd.Parameters.AddWithValue("@userid", TextBox1.ToString());
cmd.Parameters.AddWithValue("@passid", TextBox2.ToString());
试一试
删除
cmd.Parameters.AddWithValue("@userid", TextBox1.ToString());
cmd.Parameters.AddWithValue("@passid", TextBox2.ToString());
您没有正确地传递值 TextBox1.ToString错误 使用
TextBox1.Text您没有正确传递值 TextBox1.ToString错误 使用
TextBox1.Text您是否将密码存储为纯文本?这有点危险,您应该考虑以哈希形式存储密码。当您直接在数据库上执行查询时,您是否获得了所传递参数的任何结果?您是否尝试过调试代码以检查数据集ds中的内容?运行SQL探查器并检查正在进行的查询。请尝试更改。tostring to.text首先检查您是否正在获取数据集中的行。如果不检查参数是否正确分配给sql命令。是否将密码存储为纯文本?这有点危险,您应该考虑以哈希形式存储密码。当您直接在数据库上执行查询时,您是否获得了所传递参数的任何结果?您是否尝试过调试代码以检查数据集ds中的内容?运行SQL探查器并检查正在进行的查询。请尝试更改。tostring to.text首先检查您是否正在获取数据集中的行。如果没有,请检查参数是否正确分配给sql命令。sql注入攻击!!这会使查询受到SQL注入攻击!SQL注入攻击!!这会使查询受到SQL注入攻击!仍然无法访问管理仪表板仍然无法访问管理仪表板
cmd.Parameters.AddWithValue("@userid", TextBox1.ToString());
cmd.Parameters.AddWithValue("@passid", TextBox2.ToString());