我正在尝试在我的 asp.net 页面中创建一个简单的登录表单(我有一个 html 页面,现在我正在尝试将其添加到 asp.net)。它应该使用输入的用户名和密码并连接到 mssql 数据库。在那里我将创建一个 SQL Select 语句,它选择用户名和密码,其中用户名等于在文本框中输入的用户名(然后比较输入的密码是否与数据库中的密码相同)。如果用户名和密码没问题,那么它应该打开另一个页面 - main.aspx。我的 index.aspx 看起来像这样:
<form id="loginform" runat="server" method="post" action="/">
<div id="username_box"><p style="padding-top: 10px; margin: 0px">Username:</p></div>
<input type="text" value="" name="usernameTextBox" runat="server" id="username_input" /><br/>
<div id="password_box"><p style="padding-top: 10px; margin: 0px">Password:</p></div>
<input type="password" value="" name="passwordTextBox" runat="server" id="password_input" /><br/>
<a href="facebook.com" style="float: left;padding-left: 13px;padding-top: 8px;">Glemt kodeordet?</a>
<input type="submit" runat="server" id="LoginBtnClick" />
</form>
按下提交按钮后,有我的c#代码:
protected void LoginBtn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select user_username, user_password FROM users WHERE user_username =@username and user_password=@password", con);
cmd.Parameters.AddWithValue("@username", "user");
cmd.Parameters.AddWithValue("@password", "1234");
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Response.Redirect("main.aspx");
}else
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Username and Password')</script>");
}
}
现在我没有使用用户在文本框中输入的用户名和密码,而只是一个硬编码的用户名“user”和密码“1234”,我已经插入到我的数据库中。我不知道如何从文本框中获取文本。但即使使用硬编码的用户名和密码,这整件事也不起作用。
现在最后,这就是我在 Web.Config 中添加的用于创建连接字符串的内容:
<connectionStrings>
<add name="myConnectionString" providerName="System.Data.SqlClient" connectionString="Data Source=hereistheipofmydb;Initial Catalog=mydb;User Id =myadmin;password=mypass;" />
还有一个问题:是否需要将整个项目上传到服务器(与数据库相同)?现在我在主机上有我的数据库,但我通过 Visual Studio 2012 运行的网站。