[ASP .NET MVC 五小時]從零開始,無Youtube廣告 免費試聽 https://youtu.be/6nC9spSkwzw
學員感言與推薦 - https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E5%8F%A3%E7%A2%91%E8%88%87%E6%8E%A8%E8%96%A6-mis2000lab-%E7%B7%9A%E4%B8%8A%E8%AA%B2%E7%A8%8B-asp-net-mvc-webapi-%E6%95%99%E5%AD%B8%E8%A6%96%E9%A0%BB-869112e651a2
學員感言與推薦 - www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023
直接來信跟我購買 : 1. 價格最便宜(因為沒有別人抽成) 2. 內容最多、更新最快(外面平台只能賣得動 入門課、進階的沒人買) 3. 一年內,MVC新增內容,第一時間通知您 "免費"觀賞
完整課程 超過 140小時(外面買不到) 已開始販售,請來信詢問,保證最低價(直接跟我買,限時優惠六折!) mis2000lab (at) yahoo.com.tw; school (at) mis2000lab.net。謝謝您
[ASP .NET Core 6.0~8.0/9.0 MVC]第一天 免費課程 3小時完整試聽 https://youtu.be/TSmwpT-Bx4I 。
[ASP .NET MVC 5 / .NET 4.x版] 第一天完整影片(5.5小時)免費試聽 https://youtu.be/9spaHik87-A 。
課程大綱,請看 www.dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
課程大綱 mis2000lab.pixnet.net/blog/post/35141956
課程上架 - 9vs1 .com 網站的 ASP .NET 8.0 / 9.0 MVC 三天入門課程 www.9vs1.com/go/?i=57ktp8xdj5ph
這位學員學了半年,公司幫他加薪150%(真人真事) - www.dotblogs.com.tw/mis2000lab/2020/09/23/ASPnet_MVC_online_20200923
初學者第一天的MVC入門課程。一般的網站(購物商城、新聞媒體)有哪些必備功能,我們學習MVC也能做到嗎?MVC又是什麼?能否讓我一個範例就懂?
這是備份網站。主網站位於http://www.dotblogs.com.tw/mis2000lab/
MIS2000 Lab's ASP.NET & Linux (Trad. Chinese 正體中文;Big5)。這個網站,是我們(MIS2000 Lab.資訊工作室)多年教學的實際心得與上課範例,有ASP.NET程式設計,也有Linux的相關文件。
編輯。
您也可以直接參觀主網站
MIS2000 Lab. is MVP 2008-2017/7/1 for ASP/ASP.NET.
2025年11月7日 星期五
2025年6月8日 星期日
[ASP.NET MVC]會員登入- 第三方google帳號登入(1) 使用OAuth 2.0 存取Google API | Authoriza...
Youtube影片網址 https://youtu.be/RW0y3bV5rwQ
Youtube影片網址 https://youtu.be/RW0y3bV5rwQ
[ASP.NET MVC + OAuth 2.0 ]會員登入- 以第三方 google帳號 登入(1) 使用OAuth 2.0 存取Google API | Authorization -- 這門課程預計2025年七月公布,目前正在錄製中......謝謝您
學員感言與推薦 - www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023
直接來信跟我購買 : 1. 價格最便宜(因為沒有別人抽成) 2. 內容最多、更新最快(外面平台只能賣得動 入門課、進階的沒人買) 3. 一年內,MVC新增內容,第一時間通知您 "免費"觀賞
完整課程 超過 140小時(外面買不到) 已開始販售,請來信詢問,保證最低價(直接跟我買,限時優惠六折!) mis2000lab (at) yahoo.com.tw; school (at) mis2000lab.net。謝謝您
[ASP .NET Core 6.0~8.0/9.0 MVC]第一天 免費 3小時 https://youtu.be/TSmwpT-Bx4I 。
[ASP.NET MVC 5 / .NET 4.x版] 第一天 免費(5.5小時)完整試聽 https://youtu.be/9spaHik87-A 。
課程大綱,請看 https://www.dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
課程上架 - 9vs1 .com 網站的 ASP .NET 8.0 / 9.0 MVC 三天入門課程 www.9vs1.com/go/?i=57ktp8xdj5ph
課程大綱 詳見 mis2000lab.pixnet.net/blog/post/35141956 。這位學員學了半年,公司幫他加薪150%(真人真事) - www.dotblogs.com.tw/mis2000lab/2020/09/23/ASPnet_MVC_online_20200923
初學者第一天的MVC入門課程。一般的網站(購物商城、新聞媒體)有哪些必備功能,我們學習MVC也能做到嗎?MVC又是什麼?能否讓我一個範例就懂?
標籤:
第三方帳號登入,
第三方登入,
會員登入,
ASP.NET,
ASP.NET Login,
ASP.NET MVC,
ASP.NET登入,
Google Login,
Google帳號登入,
OAuth 2.0
2020年2月4日 星期二
[會員登入] 不使用ASP.NET Core Identity 的 Cookie 驗證 (ClaimsIdentity)
ASP.NET Core 3.1與 2.x 搭配 System.Security.Claims 命名空間的 ClaimsIdentity來做
輕鬆簡單,很快就能上手。Forms Authentication with cookie
ASP.NET Core 3.1與 2.x ,搭配 System.Security.Claims 命名空間 的 ClaimsIdentity來做
我建議先閱讀這一篇文章,簡短有力,淺顯易懂。完成以後,再來看微軟官方說明。
(2018/8/2) Forms Authentication in .NET Core (AKA Cookie Authentication)
http://www.nogginbox.co.uk/blog/forms-authentication-in-net-core-aka-cookie-authentication
或是參考我錄好的教學影片 - https://youtu.be/eRa-hdsDfB4
微軟的文件(中文) .NET Core 2.1與 3.1差異不大。
但 3.1版的範例採用 Razor Page來示範。
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/security/authentication/cookie/samples/3.x/CookieSample
每一個檢視畫面(網頁)跟以前WebForm(.aspx)一樣,分成兩個檔案(.cshtml 與 .cshtml.cs)。
我覺得比較不好懂。所以建議參閱 .NET Core 2.1的範例。
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/security/authentication/cookie/samples/2.x/CookieSample
第二,透過 Nuget安裝「Microsoft.AspNetCore.Authentication.Cookies」
第三,Startup.cs裡面有些設定:
請參閱 https://github.com/aspnet/AspNetCore.Docs/blob/master/aspnetcore/security/authentication/cookie/samples/3.x/CookieSample/Startup.cs
(3-1) ConfigureServices這個區域,請加入這兩段
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie();
(3-2) Configure這個區域,請加入這兩段
app.UseAuthentication(); // 這一句話需要手動加入,後面幾句是原本就有的
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
// endpoints.MapRazorPages(); // 如果您不使用 RazorPage來做,這一句可以註解掉、不用
});
第四,HomeController控制器,您需要加入這些命名空間
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using System.Security.Claims; // Claims會用到
using Microsoft.AspNetCore.Authorization;
(4-1) Login登入,輸入帳號、密碼。
public IActionResult Login()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(db_user _User)
{
if (ModelState.IsValid)
{ // 入門版,先不連結DB,固定帳號密碼來做(微軟範例也是這樣)
// 線上課程 裡會有連結資料庫,比對帳號與密碼的教材。 初學者不要急,一步一步學習。
if (_User.UserName != "123" && _User.UserPassword != "123")
{
ViewData["ErrorMessage"] = "帳號與密碼有錯";
return View();
}
#region ***** 不使用ASP.NET Core Identity的 cookie 驗證 *****
var claims = new List // 搭配 System.Security.Claims; 命名空間
{
new Claim(ClaimTypes.Name, _User.UserName),
// new Claim(ClaimTypes.Role, "Administrator"),
// 如果要有「群組、角色、權限」,可以加入這一段
};
// 底下的 ** 登入 Login ** 需要下面兩個參數 (1) claimsIdentity (2) authProperties
var claimsIdentity = new ClaimsIdentity(
claims, CookieAuthenticationDefaults.AuthenticationScheme);
var authProperties = new AuthenticationProperties
{
//AllowRefresh =,
// Refreshing the authentication session should be allowed.
//ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(10),
// The time at which the authentication ticket expires. A
// value set here overrides the ExpireTimeSpan option of
// CookieAuthenticationOptions set with AddCookie.
//IsPersistent = true,
// Whether the authentication session is persisted across
// multiple requests. When used with cookies, controls
// whether the cookie's lifetime is absolute (matching the
// lifetime of the authentication ticket) or session-based.
//IssuedUtc =,
// The time at which the authentication ticket was issued.
//RedirectUri =
// The full path or absolute URI to be used as an http redirect response value.
};
// *** 登入 Login *********
HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(claimsIdentity),
authProperties);
#endregion
return Content("
}
// Something failed. Redisplay the form.
return View();
}
(4-2) LogOut 登出。微軟範例以非同步(異步)的寫法來做 -- Async. Await
可以參閱這一則影片 https://youtu.be/8vcrjhaF1zE ( [ASP.NET].NET 4.5 非同步程式,從一張圖知道原來如此 (async & await) )
public async Task Logout()
{
// 自己宣告 Microsoft.AspNetCore.Authentication.Cookies; 命名空間
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
return View(); // 回 首頁。 return RedirectToAction("Index", "Home");
}
專案名為 WebApplication2019_MVC_Core_LoginCookie
這個範例為了搭配我的MVC課程,所以經過修改。
已經購買 ASP.NET MVC 5線上教學的朋友,可以發現跟原本範例的差異不大
主要是上述(第四部分)的修改而已。
請由此下載 https://onedrive.live.com/?id=6F7F668080F24B20%212586&cid=6F7F668080F24B20
輕鬆簡單,很快就能上手。Forms Authentication with cookie
使用沒有 ASP.NET Core 身分識別的 cookie 驗證(不使用ASP.NET Core Identity的 cookie 驗證)
ASP.NET Core 3.1與 2.x ,搭配 System.Security.Claims 命名空間 的 ClaimsIdentity來做
我建議先閱讀這一篇文章,簡短有力,淺顯易懂。完成以後,再來看微軟官方說明。
(2018/8/2) Forms Authentication in .NET Core (AKA Cookie Authentication)
http://www.nogginbox.co.uk/blog/forms-authentication-in-net-core-aka-cookie-authentication
或是參考我錄好的教學影片 - https://youtu.be/eRa-hdsDfB4
微軟的文件(中文) .NET Core 2.1與 3.1差異不大。
但 3.1版的範例採用 Razor Page來示範。
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/security/authentication/cookie/samples/3.x/CookieSample
每一個檢視畫面(網頁)跟以前WebForm(.aspx)一樣,分成兩個檔案(.cshtml 與 .cshtml.cs)。
我覺得比較不好懂。所以建議參閱 .NET Core 2.1的範例。
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/security/authentication/cookie/samples/2.x/CookieSample
** 步驟如下 **
第一,打開一個 ASP.NET Core 的 MVC專案第二,透過 Nuget安裝「Microsoft.AspNetCore.Authentication.Cookies」
第三,Startup.cs裡面有些設定:
請參閱 https://github.com/aspnet/AspNetCore.Docs/blob/master/aspnetcore/security/authentication/cookie/samples/3.x/CookieSample/Startup.cs
(3-1) ConfigureServices這個區域,請加入這兩段
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie();
(3-2) Configure這個區域,請加入這兩段
app.UseAuthentication(); // 這一句話需要手動加入,後面幾句是原本就有的
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
// endpoints.MapRazorPages(); // 如果您不使用 RazorPage來做,這一句可以註解掉、不用
});
第四,HomeController控制器,您需要加入這些命名空間
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using System.Security.Claims; // Claims會用到
using Microsoft.AspNetCore.Authorization;
(4-1) Login登入,輸入帳號、密碼。
public IActionResult Login()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(db_user _User)
{
if (ModelState.IsValid)
{ // 入門版,先不連結DB,固定帳號密碼來做(微軟範例也是這樣)
// 線上課程 裡會有連結資料庫,比對帳號與密碼的教材。 初學者不要急,一步一步學習。
if (_User.UserName != "123" && _User.UserPassword != "123")
{
ViewData["ErrorMessage"] = "帳號與密碼有錯";
return View();
}
#region ***** 不使用ASP.NET Core Identity的 cookie 驗證 *****
var claims = new List
{
new Claim(ClaimTypes.Name, _User.UserName),
// new Claim(ClaimTypes.Role, "Administrator"),
// 如果要有「群組、角色、權限」,可以加入這一段
};
// 底下的 ** 登入 Login ** 需要下面兩個參數 (1) claimsIdentity (2) authProperties
var claimsIdentity = new ClaimsIdentity(
claims, CookieAuthenticationDefaults.AuthenticationScheme);
var authProperties = new AuthenticationProperties
{
//AllowRefresh =
// Refreshing the authentication session should be allowed.
//ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(10),
// The time at which the authentication ticket expires. A
// value set here overrides the ExpireTimeSpan option of
// CookieAuthenticationOptions set with AddCookie.
//IsPersistent = true,
// Whether the authentication session is persisted across
// multiple requests. When used with cookies, controls
// whether the cookie's lifetime is absolute (matching the
// lifetime of the authentication ticket) or session-based.
//IssuedUtc =
// The time at which the authentication ticket was issued.
//RedirectUri =
// The full path or absolute URI to be used as an http redirect response value.
};
// *** 登入 Login *********
HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(claimsIdentity),
authProperties);
#endregion
return Content("
恭喜您,登入成功
");}
// Something failed. Redisplay the form.
return View();
}
(4-2) LogOut 登出。微軟範例以非同步(異步)的寫法來做 -- Async. Await
可以參閱這一則影片 https://youtu.be/8vcrjhaF1zE ( [ASP.NET].NET 4.5 非同步程式,從一張圖知道原來如此 (async & await) )
public async Task
{
// 自己宣告 Microsoft.AspNetCore.Authentication.Cookies; 命名空間
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
return View(); // 回 首頁。 return RedirectToAction("Index", "Home");
}
** 範例下載 **
我整理了一份 "PDF檔" 當作說明,也分享了這個範例專案名為 WebApplication2019_MVC_Core_LoginCookie
這個範例為了搭配我的MVC課程,所以經過修改。
已經購買 ASP.NET MVC 5線上教學的朋友,可以發現跟原本範例的差異不大
主要是上述(第四部分)的修改而已。
請由此下載 https://onedrive.live.com/?id=6F7F668080F24B20%212586&cid=6F7F668080F24B20
***************************************************
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm
https://www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023
[ASP.NET Core MVC]第一天 免費課程 3小時完整試聽
https://www.dotblogs.com.tw/mis2000lab/2023/01/30/AspNetCore_MVC_First_Day_Free_20230130
從最早的 75小時MVC課程,目前已經延伸到 115小時,也包含了 .NET Core
.NET Core 6 MVC線上教學 - MIS2000Lab 課程大綱 與 試聽
https://dotblogs.com.tw/mis2000lab/2021/07/18/NET_MVC_Online_Free_Learning_mis2000lab
購買完整MVC課程(一百小時),限時六折優惠並免費加贈兩萬元「.NET Core升級課程」,請直接來信洽詢
(太便宜!太划算,不能公開) mis2000lab (at) yahoo.com.tw ; school (at) mis2000lab.net
2019年8月26日 星期一
ASP.NET MVC - Login 會員登入與權限控管
課程介紹 https://9vs1.com/go/?i=3580aaf8f818

任何商業系統都需要「會員登入與權限控管」的機制,因此不少初學者,或坊間教學只會用微軟提供的現成工具或套件,如 ASP.NET Identity 去作會員登入與權限管理,但在這套工具還沒出現以前,市面上這麼多網站的「會員登入」的機制又是打哪來的呢?如果不用現成套件又要如何去做呢?
本課程將教你多種會員登入的機制,不只是 ASP.NET Web Form 與 MVC 兩者都可共用,有很多方法甚至可以沿用到 PHP 、 JSP 等其他網頁程式上,學會網頁程式共用的技巧,這樣的學習才是聰明的投資,不會被綁在某一套程式語法上面,將來在面試、應徵工作時,也越能凸顯自己的能力。


除了會員登入與管理,本課程也提供幾種網路攻擊與資訊安全的防範之道。例如:資料隱碼攻擊(SQL Injection)、跨網站腳本攻擊(XSS)、跨網站冒名請求(CSRF)。當你知道別人怎麼攻擊,才能尋求解法,知道如何防範,真正做到「知己知彼,百戰百勝」。
課程中還會分享DLL類別庫專案的作法,把共用的程式抽離出來。
FormsAuthentication 與MVC的 [Authorize] 互相搭配,也可做到會員登入與控管的功能,不管是WebForm或是MVC都可以使用這方法。
最後更提供兩個實用的範例:
第一,以雜湊運算「單向」的打亂機密資訊。
第二,會員註冊以後,需要透過E-Mail再次確認身份,避免幽靈帳號大量註冊。
課程網址 https://9vs1.com/go/?i=3580aaf8f818


本課程的教法是循序漸進、由淺入深,每一節的進度都比上一節微幅增加,讓學員學習起來不會覺得壓力太大或是跟不上,還有持續進步的感覺。
主要教學方針則以「實務」與「範例解說」作為目標,不只可以透過大量的實作練習,直接以實戰練功,老師更會親自為學員示範常見的範例,與論壇上經常被人問到的功能。其中的範例與技巧,也都能同時用在 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)皆可使用。

- 以實作優先:減少理論說明,大量練習範例,講求從做中學。
- 錯誤學習法:透過錯誤的範例從中學習,並找出自己的盲點。



- 會員登入與權限控管
- 設計會員登入的資料表 & 狀態管理
- 連結資料庫
- 綜合練習—撰寫DLL類別庫,將共用程式抽離出來
- 觀念與解說
- 綜合練習—連結資料庫 + 狀態管理(Session)
- 資訊安全—常見的網路攻擊與防範之道
- 綜合練習—連結資料庫 + 狀態管理(Cookie)
- 綜合練習— FormsAuthentication與 [Authorize](簡易版 + 進階版)
- 綜合練習—透過雜湊運算,打亂機密資料
- 綜合練習—註冊成功後,透過E-Mail再次確認身份
學員上課後會學到什麼或能做什麼
- 透過網頁程式都有的「狀態管理」的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。
課程介紹 https://9vs1.com/go/?i=3580aaf8f818
2019年8月16日 星期五
[ASP.NET MVC] FormsAuthentication 簡易入門
[ASP.NET MVC] FormsAuthentication 簡易入門
https://youtu.be/0nFlssh60Pw
簡單的會員登入,ASP.NET MVC + WebForm都能使用。
ASP.NET MVC線上影片、遠距教學。請看 dotblogs.com.tw/mis2000lab/2018/08/14/aspnet_mvc_online_learning_mis2000lab 或是
mis2000lab.pixnet.net/blog/post/35141956
2017年9月18日 星期一
會員登入 與 FormsAuthentication (Web.Config裡面的 authentication mode="Forms")
會員登入 與 FormsAuthentication (Web.Config裡面的 )
用 Web.Config 鎖死後台管理區 需要權限的檔案,必須通過帳號、密碼才能登入(看得見)
本範例源自微軟MSDN的範例(予以簡化)
用 Web.Config 鎖死後台管理區 需要權限的檔案,必須通過帳號、密碼才能登入(看得見)
本範例源自微軟MSDN的範例(予以簡化)
這是一個很老的方法(從.NET 2.0就有了)
topcat寫的最詳細,學習ASP.NET 2.0會員機制三部曲 www.dotblogs.com.tw/topcat/archive/2009/08/03/9821.aspx
我比較單刀直入,一個可用的範例PO出來就會做了
先看執行畫面:


您要改的地方,就是下面這幾個重點。檔案 Session_Login.aspx
有心研究的朋友,微軟MSDN網站查一下,都有!
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "123" && TextBox2.Text == "123")
{ //基本上,底下這段幾乎是照抄!就能運作!
String groups = "Admin"; //群組(角色)。可以自己寫字串,也可以從資料庫裡面抓取您設定的數值。
//Create the ticket, and add the groups.登入成功後,是否用Cookie記錄?
bool isCookiePersistent = CheckBox1.Checked;
//資料來源:http://msdn.microsoft.com/zh-tw/library/System.Web.Security.FormsAuthenticationTicket(v=vs.110).aspx
//輸入參數: 使用 Cookie 名稱、版本、目錄路徑、核發日期、到期日期、永續性和使用者定義的資料
// 此 Cookie 路徑設定為在Web.Config組態檔中建立的預設值,也就是 path="/"。
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, TextBox1.Text, DateTime.Now, DateTime.Now.AddMinutes(60), isCookiePersistent, groups);
//-- 每個參數的用意 ---------------------------------------------------------------------------------------------
//-- version 類型:System.Int32 票證(ticket)的版本號碼。
//-- name 類型:System.String 與票證相關的使用者名稱。
//-- issueDate 類型:System.DateTime 核發此票證時的本機日期和時間。
//-- expiration 類型:System.DateTime 票證到期的本機日期和時間。
//-- isPersistent 類型:System.Boolean 如果票證將存放於持續性 Cookie 中 (跨瀏覽器工作階段儲存),則為 true,否則為 false。
// 如果票證是存放於 URL 中,則忽略這個值。
//-- userData 類型:System.String 要與票證一起存放的使用者特定資料。
//Encrypt the ticket. 加密,以策安全!
String encryptedTicket = FormsAuthentication.Encrypt(authTicket);
//底下的就是寫Cookie而已,請看 上集 第十六章「狀態管理」
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
if (true == isCookiePersistent)
authCookie.Expires = authTicket.Expiration; // cookie過期日
//Add the cookie to the outgoing cookies collection.
Response.Cookies.Add(authCookie);
//通過身份驗證的人,才能看見原本的網頁,例如Hello.aspx。
//通過驗證後,自動回到(導向)原本想看的網頁。
Response.Redirect(FormsAuthentication.GetRedirectUrl(TextBox1.Text, false));
}
else {
Response.Write("
登入失敗(帳號或密碼錯誤)
");
}
}
註解: 程式中用到的 FormsAuthentication ,請看
................................................................................................................................................
Web.Config檔案裡面需要一些設定:
也因為 Web.Config檔鎖定了所有檔案,只要您想直接開啟(觀看)網頁,就會「被導向」登入畫面 ( 檔案 Session_Login.aspx )
帳號、密碼都正確後,才能看到這些「後台管理區」的網頁。
這樣的功能,您可以用本文範例來做(用 Web.Config 鎖死這些需要權限的檔案)
也可以自己寫,其實不會太困難喔,如下圖。
範例下載 -- https://onedrive.live.com/?id=6F7F668080F24B20%21115&cid=6F7F668080F24B20
檔名:WebSite3_Easy_Login_FormsAuthentication.rar (C#)WebSite3_Easy_Login_FormsAuthentication_VB.rar (VB)
動手先玩一下,知道他運作的流程。
然後再來審閱程式裡面的邏輯、參數的用法。
這個範例是從微軟MSDN範例裡面,簡化而來。特此感謝。
如果您要下載上面這個 Windows AD來作會員登入 範例,可以參閱我以前的文章:
ASP.NET透過AD進行驗證 #4 -- 會員登入、會員專屬網頁 / Login AD Account
相關範例可以參考 topcat撰寫的 -- [範例]ASP.NET使用Session驗證練習範例
2016年12月21日 星期三
資訊安全 - 3M 獅子王 (便利貼 密碼)。密碼規則複雜、更換週期頻繁,就會安全?
資訊安全 - 3M 獅子王 (便利貼 密碼)。密碼規則複雜、更換週期頻繁,就會安全?
當您把密碼規則設定得太複雜,例如:每隔九十天要更換密碼、密碼不能跟以前用過的相同(強迫更新).....
到最後的結果,就是 User根本記不住密碼,而需要依賴其他輔助
台語的俗諺有云「 嚴官府出厚賊;嚴爸母出阿里不達。」
上課時,常常要找圖片,卻找不到,幫自己做一個記錄
當您把密碼規則設定得太複雜,例如:每隔九十天要更換密碼、密碼不能跟以前用過的相同(強迫更新).....
到最後的結果,就是 User根本記不住密碼,而需要依賴其他輔助
台語的俗諺有云「 嚴官府出厚賊;嚴爸母出阿里不達。」
釋義 嚴格的官府反而出現很多小偷;父母太嚴格,小孩越是不成材。
說明 http://twblg.dict.edu.tw/holodict_new/result_detail.jsp?source=8&in_idx=09uann1&n_no=60384&curpage=2&sample=%E5%AE%98&radiobutton=1&querytarget=2&limit=20&pagenum=2&rowcount=34
......有點物極必反、弄巧成拙的意思在內
搜尋關鍵字「post-it password」可以找到這些圖片
如下圖:
http://stanbiron.com/content/binary/passwordPostIt.jpg
http://cdn.phys.org/newman/gfx/news/hires/2013/postitnotesa.jpg
http://c8.alamy.com/comp/A0X1K9/sticky-notes-fill-computer-monitor-and-office-wall-A0X1K9.jpg
https://au.linkedin.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAAc1AAAAJDdhZjY5MDhiLWIxMjItNDM2YS05ZGJiLWZjYTY0NTVjODc3Yw.jpg
有一本資訊安全的書籍,戲稱這叫做「獅子王(Lion King)」
因為貼滿銀幕四周的 3M便利貼紙(黃色),如同公獅子的鬃毛。 哈哈哈~~
相關文章與範例:
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我-- mis2000lab (at) yahoo.com.台灣 或是 school (at) mis2000lab.net
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ Google+ https://plus.google.com/100202398389206570368/posts ........
................ YouTube (ASP.NET) 線上教學影片 http://goo.gl/rGLocQ
2015年8月19日 星期三
[會員登入] 透過 E-Mail進行身份認證、啟用會員權利
無法查看此摘要。請
按這裡查看文章。
標籤:
會員登入,
範例,
ASP.NET,
asp.net專題實務,
E-Mail啟用,
E-Mail認證,
Login,
mis2000lab,
Web Form
訂閱:
文章 (Atom)


