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

本文关键字:简单 登录 一个 何制作 | 更新日期: 2023-09-27 18:26:26

我想制作一个简单的登录页面,而不需要注册我在SQL数据库中使用的用户名和密码。这是我现在为按钮1:写的

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);
}

(参见http://msdn.microsoft.com/en-us/library/yh598w02.aspx了解有关使用的更多信息。进入是个好习惯

完成后,为了方便地验证登录,您可以对SqlCommand:执行以下操作

SELECT COUNT(*) FROM Register WHERE username=@username AND password=@password

然后在添加参数之后,但在using:上的右大括号之前,将其添加到代码中

conn.Open();    
int result = Convert.ToInt32(cmd.ExecuteScalar());

如果未找到用户,则result将为0,如果只找到一个用户,则为1(如果可以有多个用户使用相同的用户名,则存在此范围之外的其他问题)。

现在,关于强制访问控制,请看http://support.microsoft.com/kb/301240您对此感兴趣的术语是"表单身份验证"answers"web.config授权"。请注意,提供的链接中的代码示例有点过时,但总的来说,它展示了如何完成您的要求。

这应该会让你走上正轨。

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