C# 用户名无效。无法从数据库(ASP.net)读取用户名

C# 用户名无效。无法从数据库(ASP.net)读取用户名,c#,asp.net,C#,Asp.net,我试图创建一个连接到数据库的登录页面。但这表明用户是无效的。我可以知道有什么问题吗?谢谢 以下是完整的代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using Sy

我试图创建一个连接到数据库的登录页面。但这表明用户是无效的。我可以知道有什么问题吗?谢谢 以下是完整的代码:

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

public partial class Login : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ToString());
        conn.Open();
        string checkuser = " select count(*) from [Table] where UserName = ' " + TextBoxUserName.Text + "' and Password='"+ TextBoxPassword.Text + "' ";
        SqlCommand com = new SqlCommand(checkuser, conn);
        int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
        if (temp == 1)
        {
            Session["user"] = TextBoxUserName.Text;
            Response.Write("Login success");
        }
        else
        {
            Response.Write("Login fail");
        }

    } 

首先回答你的问题:你有一个空间,在那里你不应该有一个。
其中UserName='”
系统也检查了这个空间,这是错误的。你只想要文本框的内容,对吗


第二件事是此代码的安全性。您的代码非常容易受到sql注入的攻击,密码不应该是纯文本,哈希是更好的答案。

您是否有一个名为
用户
的会话?您能否向我们提供完整的错误消息?用户是否存储在
[表]中
或者这只是示例代码中的一个占位符?作为一个侧节点,不要将用户输入直接连接到SQL查询,而是使用
SqlParameter
来防止(例如,我可以将TextBoxPassword作为
发送;删除表[TABLE];
)PS:您似乎还将密码以纯文本形式存储在数据库中?使用内置的登录方式比使用自行开发的解决方案更安全。。。