繁体   English   中英

Asp.net使用SQL Server数据库登录

[英]Asp.net login with SQL Server database

我想在我的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运行的网站。

使用访问文本框

cmd.Parameters.AddWithValue("@username", username_input.Text);

如果您无法连接我建议您安装一些东西来测试连接,如SQL Server Express管理工具 如果这不起作用,它可以是你的电脑和SQL服务器之间的任何东西,而不是你的程序。 然后与您的服务器提供商联系以确定此问题或尝试在端口1433(标准端口)上打开防火墙到服务器地址。

另外,不,你只需要上传所有aspx,js,图像和二进制文件(可能更多)。 您不必部署的源文件。 您可以做的只是右键单击项目并选择发布,它将帮助您创建项目的部署。

你正在艰难地使用数据库。 您对连接字符串的使用也是内存泄漏的潜在来源。 请考虑使用LINQ-to-SQL或Entity Framework。 它们会让你的生活更加轻松。 调查事件的正确使用对您也非常有帮助。 请查看以下参考资料:

  1. 发布/订阅事件模式
  2. C#中的LINQ入门
  3. LINQ to SQL教程初学者
  4. 使用MVC4和Entity Framework将模型添加到ASP.NET

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM