-6

我在一个项目中工作,我有一个员工注册页面,员工可以在其中注册自己并选择他们的用户 ID 和密码,这些用户 ID 和密码保存在 SQL 数据库中。我想使用该用户 ID 和密码登录。

4

1 回答 1

4

好吧,在我开始之前,让我们谈谈我将不得不做出的假设,因为您在问题中几乎没有提供任何信息。请记住,我必须做出这些假设,这样我才能提供某种答案。

数据库模式

我将假设数据库模式看起来像这样:

... TABLE users (
    userid INT PRIMARY KEY IDENTITY (1, 1),
    username VARCHAR(50),
    password VARCHAR(50)
)

网页表格

我将假设 Web 表单可能看起来像这样:

<asp:TextBox ID="username" runat="server" />
<asp:TextBox ID="password" runat="server" />
<asp:Button ID="login" Text="Login" runat="server" />

好的,既然我已经做出了一些假设,那么您将如何使用我所做的假设来做到这一点。首先,我们将连接Click事件:

<asp:Button ID="login" Text="Login" runat="server" OnClick="LoginUser" />

然后我们需要后面代码中的事件处理程序:

public void LoginUser(object sender, EventArgs e)
{
    SqlConnection cn = new SqlConnection(connectionString);
    cn.Open();

    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM users WHERE username = @username AND password = @password", cn);

    using (cn)
    {
        sda.SelectCommand.Parameters.AddWithValue("@username", this.username.Text);
        sda.SelectCommand.Parameters.AddWithValue("@password", this.password.Text);

        sda.Fill(dt);

        if (dt.Rows.Count == 0)
        {
            // do something here, like show a label stating that the username
            // and password combination didn't match

            return;
        }

        // if you get here then it was a valid login
    }
}

安全

我在示例中又做了一个假设,为了简单起见,我在数据库中没有加密密码。你应该。但是,如果您还没有,您可以在将其放置到位时添加到此示例中。

于 2013-03-13T11:17:04.590 回答