【发布时间】:2017-02-18 11:47:35
【问题描述】:
我有一个简单的登录网站,这是我在 Visual Studio 2015 中的第一个网站项目。我已经成功创建了一个 SQL 数据库,其中包含用户名、密码、电子邮件和国家/地区等用户信息,并且我还成功创建了用户注册新用户可以在那里输入详细信息的页面,这些详细信息将被添加到数据库中。这一切都很好。
但我在尝试根据 SQL 数据库中包含用户数据的行中的存储值验证用户名和密码时遇到了障碍,以使用户可以访问仅限成员的页面。
这是我的代码 sn-p 用于当用户单击登录按钮时。
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MembersConnectionString"].ConnectionString);
con.Open();
string checkUser = "SELECT * FROM Members where Username= '" + TextBoxSignUser.Text + "' and Password= '" + TextBoxSignPass.Text + "'";
SqlCommand cmd = new SqlCommand(checkUser, con);
cmd.ExecuteNonQuery();
con.Close();
我知道我需要做的可能类似于下面的伪代码,但我不确定如何根据数据库中的存储值验证这些信息。
if ("Username" and "Password" == the value of Username and Password TextBox.Text)
{
Response.Write("Sign in successful");
Response.Redirect("MemberTestPage.aspx");
}
else
{
Response.Write("Details incorrect, Please try again")
}
【问题讨论】:
-
在完全理解 SQL 注入和密码散列的概念之前,不要尝试编写有关用户和密码的代码。
-
嗨彼得,这个例子只是为了练习一个简单的登录程序,在我知道我可以安全地存储信息之前,不会将敏感数据存储在数据库中。我已经开始学习密码散列技术以及如何避免 SQL 注入。尽管如此,我还是感谢您的建议
标签: c# asp.net validation passwords