簡體   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