ASP.NET MVC - Login 會員登入與權限控管
這堂課我會學到
-
透過網頁程式都有的「狀態管理」的Session與Cookie做出「會員登入與權限控管」的機制。
-
學會DLL類別庫專案的作法,把共用的程式抽離出來。
-
幾種網路攻擊與防範之道,例如:資料隱碼攻擊(SQL Injection)、跨網站腳本攻擊(XSS)、跨網站冒名請求(CSRF)。
-
透過雜湊運算將機密資訊打亂。
-
會員註冊以後,透過E-Mail在測確認身份,避免由幽靈帳號大量註冊。
課前資訊
基礎的 OOP(物件導向)程式設計能力,如:類別(class)。建議已完成「ASP.NET MVC 教學 - 由零開始的入門課」的學習。
知道資料庫(DataBase)與簡單的 T-SQL 指令,如:CRUD。課程所需軟體皆可免費下載。
Visual Studio 2015~2019或後續新版,請下載社群版(Community版)。
建議使用 Windows 作業系統。因為 Visual Studio Code 與 Visual Studio for Mac 與教學畫面仍有差異。
SQL Server Express 版(免費)。建議使用 SQL Server 2012(Express版)或後續新版。
本課程屬於進階課程,建議完成「ASP.NET MVC 教學 - 由零開始的入門課」課程後再來學習。
需要撰寫網頁系統、或對於網頁與資料庫的開發有興趣的朋友。
未來的程式設計師 -- 希望將來進入業界寫程式,開發網頁系統。
曾寫過 ASP、ASP.NET(Web Form)、PHP、JSP 的朋友,現在想學習 ASP.NET MVC 5。
課程大綱
-
課程介紹
-
課程介紹短片
-
-
課程內容12節05:47:24
-
1. 會員登入與權限控管07:37
-
2. 設計會員登入的資料表21:42
-
3. 基本練習 - 比對帳號與密碼 & 狀態管理45:49
-
4. 綜合練習 - 撰寫 DLL 類別庫,將共用程式抽離出來29:19
-
5. 觀念與解說09:59
-
6. 綜合練習 - 連結資料庫 + 狀態管理(Session)04:45
-
7. 資訊安全 - 常見的網路攻擊與防範之道35:06
-
8. 綜合練習 - 連結資料庫 + 狀態管理(Cookie)16:27
-
9. 基本練習 -- FormsAuthentication 與 [Authorize]08:56
-
10. 綜合練習 - FormsAuthentication 與 [Authorize]01:08:54
-
11. 綜合練習—透過雜湊運算,打亂機密資料45:46
-
12. 綜合練習 - 註冊成功後,透過 E-Mail 再次確認身份53:04
-
課程介紹
「會員登入機制」不是只能用套件做
任何商業系統都需要「會員登入與權限控管」的機制,因此不少初學者,或坊間教學只會用微軟提供的現成工具或套件,如 ASP.NET Identity 去作會員登入與權限管理,但在這套工具還沒出現以前,市面上這麼多網站的「會員登入」的機制又是打哪來的呢?如果不用現成套件又要如何去做呢?
本課程將教你多種會員登入的機制,不只是 ASP.NET Web Form 與 MVC 兩者都可共用,有很多方法甚至可以沿用到 PHP 、 JSP 等其他網頁程式上,學會網頁程式共用的技巧,這樣的學習才是聰明的投資,不會被綁在某一套程式語法上面,將來在面試、應徵工作時,也越能凸顯自己的能力。
資安一百分,防駭一把罩
除了會員登入與管理,本課程也提供幾種網路攻擊與資訊安全的防範之道。例如:資料隱碼攻擊(SQL Injection)、跨網站腳本攻擊(XSS)、跨網站冒名請求(CSRF)。當你知道別人怎麼攻擊,才能尋求解法,知道如何防範,真正做到「知己知彼,百戰百勝」。
課程中還會分享DLL類別庫專案的作法,把共用的程式抽離出來。 FormsAuthentication 與MVC的 [Authorize] 互相搭配,也可做到會員登入與控管的功能,不管是WebForm或是MVC都可以使用這方法。
最後更提供兩個實用的範例:
第一,以雜湊運算「單向」的打亂機密資訊。
第二,會員註冊以後,需要透過E-Mail再次確認身份,避免幽靈帳號大量註冊。
讓你實力大增
本課程的教法是循序漸進、由淺入深,每一節的進度都比上一節微幅增加,讓學員學習起來不會覺得壓力太大或是跟不上,還有持續進步的感覺。
主要教學方針則以「實務」與「範例解說」作為目標,不只可以透過大量的實作練習,直接以實戰練功,老師更會親自為學員示範常見的範例,與論壇上經常被人問到的功能。其中的範例與技巧,也都能同時用在 ASP.NET Web Form 與 MVC 上面,一魚兩吃,絕對超值!
課程學習重點
1.會員登入與權限控管
很多初學者以為 ASP.NET MVC 「只能」透過 ASP.NET Identity 這種現成的工具與套件才能作會員登入與權限控管的機制。但事實上,有很多方法都可以做到,而且更簡單易懂。
2. 設計會員登入的資料表
任何網頁程式與Web Server都支援「狀態管理」的特性。學會這一招,不管是PHP、JSP、傳統ASP(Classic ASP)或是ASP.NET(WebForm與MVC)都可以使用。
本課程將會解說:會員登入與管理會用到資料表的哪些欄位。讓您自己設計資料表,再來寫程式。從頭到尾都可以一手包辦。
3. 基本練習 -- 比對帳號與密碼& 狀態管理 (所有網頁程式都有的特性)
學會上一節的觀念後,暫時"不"連結資料庫(DB First),帳號與密碼都固定123,這只是一個簡單的練習(後續才會有資料庫的範例,請慢慢來)。
這個範例主要講解狀態管理(Session)的用法,如何應用在會員登入與權限控管上。簡單易懂,一听就會。
4.綜合練習—撰寫DLL類別庫,將共用程式抽離出來
改寫上一節的範例,把共用的程式抽離出來,另外寫在DLL類別庫的專案中。
5.觀念與解說
前面的範例,檢查會員登入的機制,要寫在哪裡比較合適?為什麼不再寫於/App_Code目錄底下?改用DLL檔的類別庫專案來做?
6. 綜合練習 -- 連結資料庫 + 狀態管理(Session)。每個人的帳號與密碼都要進資料庫比對。
結合前面兩節的成果,現在您可以做出一個完整的範例,以「範例」為主的教學,加上「逐步延伸」與「經驗累積」。
這樣的會員登入範例,不管是PHP、JSP、傳統ASP(Classic ASP)或是ASP.NET(WebForm與MVC)都可以使用 。
7.資訊安全—常見的網路攻擊與 防範之道
完成上面的練習之後,本節將會解釋幾種網路攻擊的模式與防範的方法,包含資料隱碼攻擊(SQL Injection)、跨網站腳本攻擊(XSS)、跨網站冒名請求(CSRF)。知道別人怎麼攻擊,才能尋求防範之道。
8.綜合練習—連結資料庫 + 狀態管理(Cookie)
改寫前面的範例,經過微調就能做到。每一節的進度都比上一節微幅增加,讓學員學習起來不會感到太大的壓力。
這樣的會員登入範例,不管是PHP、JSP、傳統ASP(Classic ASP)或是ASP.NET(WebForm與MVC)都可以使用 。
9. 基本練習 -- FormsAuthentication與[Authorize]
FormsAuthentication 的範例與程式碼較長,我們先做一個入門的,簡短的版本,學會以後,再繼續深入下去。
10.綜合練習— FormsAuthentication與 [Authorize]
本範例可以同時用在ASP.NET(WebForm與MVC)上面 ,學會一次終身受用!需要搭配Global.asax與Web.Config設定檔,一樣可以搭配MVC控制器,在動作上方的 [Authorize] 作法。
11.綜合練習—透過雜湊運算,打亂機密資料
以單向的方式行雜湊運算(如MD5或SHA1)將會員的機密資料打亂,搭配會員登入的密碼檢驗。本課程以「務實」與「範例解說」兩大目標為主,提供您常見的範例與論壇上經常被人問到的功能,為您親自示範,本範例ASP.NET(WebForm與MVC)皆可使用。
12.綜合練習—註冊成功後,透過E-Mail再次確認身份
會員第一次註冊以後,通常會透過E-Mail再次確認此人身份,避免幽靈帳號的入侵。該怎麼做到呢?本課程以「務實」與「範例解說」兩大目標為主,提供您常見的範例與論壇上經常被人問到的功能,為您親自示範,本範例ASP.NET(WebForm與MVC)皆可使用。
課程特色
- 以實作優先:減少理論說明,大量練習範例,講求從做中學。
- 錯誤學習法:透過錯誤的範例從中學習,並找出自己的盲點。
課程討論與問答
-
要先登入才能做留言
-
苗芬2020-03-03 21:55:41苗芬2020-03-03 21:55:41
不好意思,我有看到老師給的學習建議了! 我已經買課程要學習了,也會準備課程需要的東西,謝謝你
-
MIS2000 Lab.2020-03-03 21:57:43MIS2000 Lab.2020-03-03 21:57:43
有問題都歡迎直接來信跟我討論喔,謝謝您 課程(影片)一開始的投影片,就有我的 E-Mail,歡迎來信 :-)
-
-
苗芬2020-03-03 21:06:35苗芬2020-03-03 21:06:35
你好,請問如果使用mac學習ASP.NET MVC有建議的開發環境跟資料庫嗎? 我的mac裡面有下載ASP.NET Core3.1,請問會影響課程實作嗎? 資料庫的部分呢? 我想要學習網頁Login及MVC入們課,謝謝您
-
MIS2000 Lab.2020-03-03 21:17:43MIS2000 Lab.2020-03-03 21:17:43
課程這一頁的下方就有說明囉,請看「學員上課前需具備哪些軟、硬體設備或常識」 建議安裝Visual Studio (Windows版)才是最完整的, --Visual Studio 2015~2019或後續新版,請下載社群版(Community版)。 --建議使用 Windows 作業系統。因為 Visual Studio Code 與 Visual Studio for Mac 與教學畫面仍有差異。 --SQL Server Express 版(免費)。建議使用 SQL Server 2012(Express版)或後續新版。 謝謝您 :-)
-
先跟著老師的步調做,在看網路上的專案,仿一個來做,發現會一直回頭看喔,原來老師是苦口婆心,要不要急於成為高手,反而能達到想要的,謝謝老師
good