1

我正在尝试在用 C# 构建的网站中进行简单登录,但我无法连接到数据库,如果在 postbackurl 中的表单属性中我定义了登录后必须去的地方(/inicio.aspx),我的应用程序会发送用户而不检查该用户和通行证是否存在,如果我不这样做,则不会发生任何事情。

在我的课堂上,我有:

public DataSet sqlLogin(string usuario, string pass)//SOLO SE OCUPA 
{
    //SEOCUPA DATASERT YA QE NO SIRVE DATABALE Y EL DATASET SE LLENA CON ESE DATATABLE 
    string stSql = "select * from usuarios where usuario='"+usuario+"' and
pass='"+pass+"'";
    Bd miBd = new Bd();
    DataTable dt = miBd.sqlSelect(stSql);
    DataSet ds = new DataSet();
    ds.Tables.Add(dt);
    return ds;
}

在我的表格中(在按钮中):

protected void btnLogin_Click(object sender, EventArgs e)
{
    ClUsuario login = new ClUsuario();
    login.sqlLogin(txtUsuario.Text, txtPass.Text);

    try
    {
        Response.Redirect("/Inicio.aspx");
    }
    catch
    {
        lblMsg.Text = "usuario/password no validos";
    }
}
4

2 回答 2

1

您必须用此代码替换您的代码

protected void btnLogin_Click(object sender, EventArgs e)
{
    ClUsuario login = new ClUsuario();
    bool isAuthenticated = login.sqlLogin(txtUsuario.Text, txtPass.Text);
    if (isAuthenticated)
    {
        Response.Redirect("/Inicio.aspx");
    }
    else    
    {
        lblMsg.Text = "usuario/password no validos";
    }
}


And return bool in your sqlLogin

try with this code 

if(dt.Rows.Count > 0)
{
   return true;
} 
return false;
于 2012-06-29T21:05:27.990 回答
1

尝试这个:

try
{
    var ds = login.sqlLogin(txtUsuario.Text, txtPass.Text);
    if(ds.Tables[0].rows.count > 0) {
      Response.Redirect("/Inicio.aspx");
    }
    else {lblMsg.Text = "usuario/password no validos";}

}
catch
{
    lblMsg.Text = "Error Occurred!";
}

还尝试在查询中使用 sql 参数。

于 2012-06-29T21:07:43.183 回答