C# 如何制作一个简单的登录页面?

C# 如何制作一个简单的登录页面?,c#,asp.net,sql,C#,Asp.net,Sql,我想创建一个简单的登录页面,不需要注册我在SQL数据库中使用的用户名和密码。这就是我现在为button1写的内容: string connection_string = "Path to database"; SqlConnection connect = new SqlConnection(); connect.ConnectionString = connection_string; connect.Open(); string sql = "Select * FROM Register w

我想创建一个简单的登录页面,不需要注册我在SQL数据库中使用的用户名和密码。这就是我现在为button1写的内容:

string connection_string = "Path to database";
SqlConnection connect = new SqlConnection();
connect.ConnectionString = connection_string;
connect.Open();
string sql = "Select * FROM Register where username=@username and password=@password";
SqlCommand 1 = new SqlCommand("username",textbox1User.text);
SqlCommand 2 = new SqlCommand("password",textbox2pass.text);

这就是我现在拥有的。我需要做其余的登录页面,如果值是确定的,那么我将在一个页面上重定向。但我还需要知道如何通过键入文件的url来保护其他用户不允许访问的页面。因此,它应该只有在我登录时才能工作。

首先,我必须祝贺您希望为SQL使用参数。很多初学者不这样做,导致可怕的SQL注入攻击

其次,你真的应该对你的密码进行哈希运算。永远不要存储纯文本密码。由于如何准确地散列密码是一个有很多争议的问题,并且会使代码复杂化,所以我暂时将此放在一边

现在,进入实际问题。首先,代码中有一些错误。首先,参数的创建是错误的,您所拥有的应该更符合以下内容:

using(SqlConnection conn = new SqlConnection("connection string"))
{
    SqlCommand cmd = new SqlCommand("Select * FROM Register where username=@username and password=@password", conn);
    cmd.Parameters.AddWithValue("@username", textbox1User.Text);
    cmd.Parameters.AddWithValue("@password", textbox2User.Text);
}
(有关使用的更多信息,请参阅。这是一个养成的好习惯)

完成后,为了轻松验证登录,您可以对SqlCommand执行如下操作:

SELECT COUNT(*) FROM Register WHERE username=@username AND password=@password
然后在添加参数后,使用在
上的右大括号之前,将其添加到代码中:

conn.Open();    
int result = Convert.ToInt32(cmd.ExecuteScalar());
如果未找到任何用户,则结果将为0;如果仅找到一个用户,则结果将为1(如果可以有多个用户名相同的用户,则此范围之外还有其他问题)

现在,关于强制访问控制,请看一看您感兴趣的术语“表单身份验证”和“web.config授权”。请注意,所提供的链接中的代码示例有点过时,但是,通常情况下,会显示如何实现您的要求


这应该会让你走上正确的道路。

你也可以使用HTACCESS来控制你的内容和密码保护它。这是最简单的方法,因为您不需要担心SQL和存储密码。

不要以纯文本形式存储密码。您应该使用ASP.Net内置的成员资格和表单身份验证系统。不要重新发明轮子,尤其是在安全方面。考虑到这个问题是关于ASP.Net的,而且是一个初学者的问题,我怀疑他们在Apache上运行Mono,而在Apache上.htaccess将是有用的。是的,但他说用户不需要注册,所以在这种情况下,htaccess是最好的。我不知道它对ASP.NET不起作用