iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Modern Web

從零開始使用Microsoft MVC架構來搭建web server系列 第 19

DAY 19 登入案例演示_總結

  • 分享至 

  • xImage
  •  

在上一篇當中講解詳細的程式碼,這篇我們把所將所有串接起來:
View
在login當中

<form action="@Url.Action("DoLogin","Home")" method="post">
    <div class="form-group">
        <label for="Account">Username:</label>
        <input type="text" id="Account" name="Account" class="form-control" required>
    </div>
    <div class="form-group">
        <label for="Password">Password:</label>
        <input type="password" id="Password" name="Password" class="form-control" required>
    </div>
   

    <button type="submit" class="btn btn-primary">Login</button>
</form>

Controller
在連接字串中要將星號改成自己的使用者密碼

 public class HomeController : Controller
 {
     public ActionResult Index()
     {
         return View();
     }
     public ActionResult login()
     {
         return View();
     }
     public ActionResult DoLogin(loginfo info)
     {
         //與資料庫連接
         string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;User ID=TEST03;Password=*****;Encrypt=False";
         SqlConnection conn = new SqlConnection(connstr);
         conn.Open();
         //下SQL語法
         SqlCommand cmd = new SqlCommand("select * from Login where Account=@Account and  Password=@Password");
         cmd.Connection = conn;
         //填入參數(使用者輸入的帳號密碼)
         cmd.Parameters.AddWithValue("@account", info.Account);
         cmd.Parameters.AddWithValue("@Password", info.Password);
         //執行SQL語法來查詢是否有這組帳密
         SqlDataAdapter adpt = new SqlDataAdapter();
         DataSet ds = new DataSet();
         adpt.SelectCommand = cmd;
         adpt.Fill(ds);
         //如果有就跳轉到首頁
         if (ds.Tables[0].Rows.Count > 0)
         {
             return RedirectToAction("Index");
         }
         else
         {
             return RedirectToAction("login");
         }

     }
 }

Model

   public class loginfo
   {
       public string Account { get; set; }
       public string Password { get; set; }
   };

之後我們在SQL server當中創建一個table並插入一行資料

--創建一個table
create table Login
(
  Account nvarchar(50),
  Password nvarchar(50)
)
--新增一行資料
insert into Login values('jack123','1234');

實測:
我們的程式邏輯是假如帳號密碼是正確的則跳到Index頁面,否則會留在原本頁面並且帳號密碼清空
假設我們帳號密碼輸入正確:
https://ithelp.ithome.com.tw/upload/images/20241002/20168332BmFeM3TI2V.png
按下Login後:
https://ithelp.ithome.com.tw/upload/images/20241002/201683325r0NvE5W40.png
這樣就代表成功
假設輸入錯誤的帳號密碼:
https://ithelp.ithome.com.tw/upload/images/20241002/20168332LmeESZvJ9u.png
https://ithelp.ithome.com.tw/upload/images/20241002/201683321JjbZAfSwD.png
這樣就代表成功
總結:
我們輸入帳號密碼以後會去拿去資料庫比對是否有這組帳號密碼,從而判定要做出哪個操作,最容易有問題的會是在與資料庫連接的部分,其中sql語法中的參數大小寫一定要與sql server中的欄位符合,因此如果失敗的話可以多去看看在SQL server的語法是否有誤。


上一篇
DAY 18 登入案例演示_程式碼詳解
下一篇
DAY 20 從SQL Server抓取資料到網頁上面呈現
系列文
從零開始使用Microsoft MVC架構來搭建web server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言