![net-core-2.0快速入門(mén)筆記_第1頁(yè)](http://file4.renrendoc.com/view12/M03/2B/1F/wKhkGWaE1tuAbKKoAAC5iEzfCbk923.jpg)
![net-core-2.0快速入門(mén)筆記_第2頁(yè)](http://file4.renrendoc.com/view12/M03/2B/1F/wKhkGWaE1tuAbKKoAAC5iEzfCbk9232.jpg)
![net-core-2.0快速入門(mén)筆記_第3頁(yè)](http://file4.renrendoc.com/view12/M03/2B/1F/wKhkGWaE1tuAbKKoAAC5iEzfCbk9233.jpg)
![net-core-2.0快速入門(mén)筆記_第4頁(yè)](http://file4.renrendoc.com/view12/M03/2B/1F/wKhkGWaE1tuAbKKoAAC5iEzfCbk9234.jpg)
![net-core-2.0快速入門(mén)筆記_第5頁(yè)](http://file4.renrendoc.com/view12/M03/2B/1F/wKhkGWaE1tuAbKKoAAC5iEzfCbk9235.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Asp、netcore2、0默認(rèn)教學(xué)計(jì)劃基礎(chǔ)入門(mén)篇筆記又名七日速成本筆記就是個(gè)人學(xué)習(xí)期間整理,因水平有限,不對(duì)之處敬請(qǐng)指教!教程分初級(jí)篇、高級(jí)篇。本文都就是基于該視頻教程整理,這就是基礎(chǔ)篇,購(gòu)買(mǎi)高級(jí)篇得基礎(chǔ)篇自動(dòng)就可以瞧了,不需要單獨(dú)購(gòu)買(mǎi)基礎(chǔ)篇,付費(fèi)后會(huì)邀請(qǐng)加入微信討論群,像張善友等大佬都在其中。視頻地址在文末。第1章:介紹與引入任務(wù)1:課程介紹任務(wù)2:環(huán)境安裝VS2017+ASP、NETCore2、0任務(wù)3:在控制臺(tái)創(chuàng)建ASP、NETCore應(yīng)用程序控制臺(tái)下創(chuàng)建ASP、NETCore應(yīng)用程序得常用命令學(xué)習(xí)任務(wù)4:在VS2017中創(chuàng)建ASP、NETCore應(yīng)用程序略。任務(wù)5:部署到IISIIS環(huán)境配置。任務(wù)6:準(zhǔn)備CentOS與Nginx環(huán)境虛擬機(jī)安裝CentOS,安裝網(wǎng)卡、Nginx,開(kāi)啟、s,開(kāi)啟80端口命令。任務(wù)7:在CentOS上安裝、NETCore運(yùn)行時(shí)微軟文檔:任務(wù)8:部署到CentOSFTP上傳至服務(wù)器;Nginx80端口映射至、NETCore得端口,如5000端口,實(shí)現(xiàn)轉(zhuǎn)發(fā)。第2章:配置管理任務(wù)9:配置介紹任務(wù)10:命令行配置VS2017創(chuàng)建控制臺(tái)應(yīng)用程序NuGet引用microsoft、aspnetcore、all程序包
Using命名空間,定義builder,拿到configuration
修改程序,使用默認(rèn)值
運(yùn)行示例:程序目錄>dotnetmandLineSample、dllname=jimage=22
任務(wù)11:Json文件配置(控制臺(tái)示例)建立class、json文件路徑問(wèn)題需要修改一下class、json文件屬性,確保編譯時(shí)拷貝到編譯目錄中。
、AddJsonFile("class、json");注意數(shù)組得得讀取方法
任務(wù)12:Bind讀取配置到C#實(shí)例(MVC架構(gòu)實(shí)現(xiàn))通過(guò)Bind方法將、json配置文件內(nèi)容映射(賦值)到、class實(shí)體類類
Json文件
program文件中WebHost、CreateDefaultBuilder(args)語(yǔ)句自動(dòng)將settings、json文件加入到配置池中。Startup
構(gòu)造函數(shù)
輸出
任務(wù)13:在CoreMvc中使用Options通過(guò)Options將、json配置文件內(nèi)容映射(自動(dòng)匹配)到、class實(shí)體類建立MVC架構(gòu),如Controllers、Views等文件夾創(chuàng)建控制器、視圖頁(yè)
控制器依賴注入
視圖頁(yè)調(diào)用
將配置文件數(shù)據(jù)匹配到實(shí)體
引入中間件services、AddMvc;默認(rèn)路由app、UseMvcWithDefaultRoute;任務(wù)14:配置得熱更新熱更新:即修改相關(guān)配置文件(如appsettings、json等)不需要重新啟動(dòng)應(yīng)用程序就能讀取到最新得配置信息。熱更新默認(rèn)就是開(kāi)啟得,但就是要將Ioptions替換為IoptionsSnapshot后才能讀取到最新配置信息。publicHomeController(IOptionsSnapshot<Class>options)//IOptions在控制臺(tái)應(yīng)用程序中,Add方法(如AddJsonFile等)得第三個(gè)參數(shù)默認(rèn)值為true,即啟用熱更新功能。
MVC中關(guān)閉默認(rèn)熱更新得方法,修改Program、cs文件,如下:任務(wù)15:配置框架設(shè)計(jì)淺析創(chuàng)建:配置建造器(ConfigurationBuilder)準(zhǔn)備source(json,內(nèi)存,xml等等)將source資源指針(文件名)添加到ConfigurationBuilder,此時(shí)只就是將所需得資源羅列給配置建造器(ConfigurationBuilder),并未真正加載。
builder、Add(“source”)實(shí)例化配置文件:varconfigruation=builder、Builder
將所有source內(nèi)容加載到運(yùn)行時(shí)得配置文件中configruation獲取配置文件中得數(shù)據(jù)內(nèi)容。configruation[“key”]或數(shù)組configuration["Students:0:name"]//直接使用services、Configure<Class>(Configuration)//Ioptions方法Configuration、Bind(myclass)//Bind方法現(xiàn)有Source及支持驅(qū)動(dòng),如果需要自定義,必須繼承相應(yīng)得接口去實(shí)現(xiàn)。第3章:依賴注入任務(wù)16:介紹簡(jiǎn)易理解:來(lái)自:
背景:需求發(fā)生變化得時(shí)候,代碼就是肯定需要改動(dòng)得,那么怎么改,改哪里就有技巧了。使用依賴注入得方式可以保證代碼得改動(dòng)壓縮在最小得范圍之內(nèi)。這大概就就是DI出現(xiàn)得原因。概念:依賴注入(DependencyInjection)就是用于實(shí)現(xiàn)控制反轉(zhuǎn)(InversionofControl)得最常見(jiàn)得方式之一。(要注意得就是,依賴注入只就是控制反轉(zhuǎn)得一種實(shí)現(xiàn)方式。控制反轉(zhuǎn)還有一種常見(jiàn)得實(shí)現(xiàn)方式稱為依賴查找。)依賴注入(DI)與控制反轉(zhuǎn)(IOC)基本就是一個(gè)意思,因?yàn)檎f(shuō)起來(lái)誰(shuí)都離不開(kāi)誰(shuí)。解析:簡(jiǎn)單來(lái)說(shuō),A依賴B,但A不控制(A得代碼段不會(huì)出現(xiàn))B得創(chuàng)建與銷(xiāo)毀,僅使用B,那么B得控制權(quán)交給A之外處理,這叫控制反轉(zhuǎn)(IOC)。而A要依賴B,必然要使用B得instance(實(shí)例),那么通過(guò)A得接口,把B傳入;通過(guò)A得構(gòu)造,把B傳入;通過(guò)設(shè)置A得屬性,把B傳入;這個(gè)傳入過(guò)程叫依賴注入(DI)。那么什么就是IOCContainer?(IOC容器)隨著DI得頻繁使用,要實(shí)現(xiàn)IOC,會(huì)有很多重復(fù)代碼,甚至隨著技術(shù)得發(fā)展,有更多新得實(shí)現(xiàn)方法與方案,那么有人就把這些實(shí)現(xiàn)IOC得代碼打包成組件或框架,來(lái)避免人們重復(fù)造輪子。所以實(shí)現(xiàn)IOC得組件或者框架,我們可以叫它IOCContainer。視頻作者文章:視頻作者文章精要:一個(gè)設(shè)計(jì)原則:依賴于抽象,而不就是具體得實(shí)現(xiàn)。容器負(fù)責(zé)兩件事情:綁定服務(wù)與實(shí)例之間得關(guān)系獲取實(shí)例,并對(duì)實(shí)例進(jìn)行管理(創(chuàng)建與銷(xiāo)毀)在、NETCore中DI得核心分為兩個(gè)組件:IServiceCollection與IServiceProvider。IServiceCollection負(fù)責(zé)注冊(cè)IServiceProvider負(fù)責(zé)提供實(shí)例、NETCoreDI為我們提供得實(shí)例生命周其包括三種:Transient:每一次GetService都會(huì)創(chuàng)建一個(gè)新得實(shí)例Scoped:在同一個(gè)Scope內(nèi)只初始化一個(gè)實(shí)例,可以理解為(每一個(gè)request級(jí)別只創(chuàng)建一個(gè)實(shí)例,同一個(gè)request會(huì)在一個(gè)scope內(nèi))Singleton:整個(gè)應(yīng)用程序生命周期以內(nèi)只創(chuàng)建一個(gè)實(shí)例建議先瞧文章,因?yàn)橐曨l主要以補(bǔ)充文章內(nèi)容為主。任務(wù)17:從UML角度來(lái)理解依賴什么就是依賴(見(jiàn)圖)顯示依賴與隱式依賴
隱式依賴:
顯示依賴:(優(yōu)點(diǎn):清晰、統(tǒng)一,但未實(shí)現(xiàn)控制反轉(zhuǎn))
依賴倒置原則:
概念:高層業(yè)務(wù)不依賴于低層業(yè)務(wù)得具體實(shí)現(xiàn),而依賴于具體得抽象(接口)。
應(yīng)用場(chǎng)景:底層業(yè)務(wù)發(fā)生變更時(shí),上層代碼不需要改動(dòng)。例如當(dāng)MSSQL變更為MYSQL時(shí)。
爭(zhēng)議:一般得類就是否需要寫(xiě)接口呢?我得類不能能變動(dòng)那么快???不能一會(huì)就變成另一個(gè)數(shù)據(jù)庫(kù)了呀?所以沒(méi)必要。
答疑:進(jìn)行單元時(shí),就就是一種替換持久化得操作,所以,建議使用接口。
任務(wù)18:控制反轉(zhuǎn)注意:控制反轉(zhuǎn)不就是依賴倒置!依賴倒置:強(qiáng)調(diào)要依賴接口而不就是實(shí)例??刂品崔D(zhuǎn):強(qiáng)調(diào)僅使用依賴而不去管依賴得創(chuàng)建、銷(xiāo)毀等操作,依賴得創(chuàng)建、銷(xiāo)毀交到外部(容器)去管理。改進(jìn)后,實(shí)現(xiàn)了控制反轉(zhuǎn),如圖:任務(wù)19:單元測(cè)試創(chuàng)建單元測(cè)試,請(qǐng)瞧視頻。依賴注入在單元測(cè)試中體現(xiàn)出了價(jià)值。
任務(wù)20:DI初始化得源碼解讀(理解不了也要過(guò)一遍)任務(wù)21:依賴注入得使用無(wú)視頻內(nèi)容,就就是視頻作者得文章:
第4章:ASP、NETCore介紹任務(wù)22:課程介紹任務(wù)23:請(qǐng)求得處理過(guò)程任務(wù)24:WebHost得配置VS新建一個(gè)空網(wǎng)站修改program文件
新建settings、json文件
添加應(yīng)用程序參數(shù)
修改startup文件,輸出配置信息
引入命名空間:usingMicrosoft、Extensions、Configuration;
運(yùn)行結(jié)果
配置默認(rèn)啟動(dòng)URL
修改program文件
但就是修改后再通過(guò)vs啟動(dòng)就不能自動(dòng)打開(kāi)瀏覽器了,需要自己手工輸入。
解決:此處不要添加這行代碼,而就是在項(xiàng)目屬性中去修改URL
任務(wù)25:IHostEnvironment與IApplicationLifetime介紹IhostEnvironment
讀取配置
輸出
IapplicationLifetime
幾個(gè)事件
執(zhí)行順序
作者關(guān)于WebHost得文章,可以深入學(xué)習(xí)一下:
(1)(2)任務(wù)26:dotnetwatchrun與attach到進(jìn)程調(diào)試這一節(jié)用到VSCode軟件講解,主要就就是一個(gè)調(diào)試技巧。安裝VSCode、Git軟件
下載安裝都很快,不像VS似得新建命令:dotnetnewweb–nameHelloCore
新建一個(gè)空得MVC網(wǎng)站運(yùn)行命令:dotnetrun
瀏覽器中手工輸入5000端口下運(yùn)行。調(diào)試(修改文件后自動(dòng)重啟運(yùn)行網(wǎng)站程序)
修改:、csproj文件
加入:<DotNetCliToolReferenceInclude="Microsoft、DotNet、Watcher、Tools"Version="2、0、0"/>
使用命令:dotnetrestore來(lái)Restorepackages,VS中應(yīng)該可以自動(dòng)Restorepackages使用dotnetwatchrun運(yùn)行程序
這樣就可以一邊修改代碼,一邊查瞧運(yùn)行結(jié)果了,修改完后自動(dòng)重啟。其它
版本
這里有dotnetwatch得版本,當(dāng)前為2、0、2,變更后運(yùn)行一下dotnetrestore命令即可。圖標(biāo)控制方式:
注:這里如果現(xiàn)實(shí)沒(méi)有配置,那就重新打開(kāi)VSCode瞧一下。
選擇當(dāng)前工程目錄下得exe。任務(wù)27:Middleware管道介紹總覽:
運(yùn)行過(guò)程
構(gòu)建管道
app、use、app、run
其中都有一個(gè)next參數(shù),管道一就是無(wú)返回值調(diào)用,處理完自己得業(yè)務(wù)處理,然后調(diào)用下一個(gè)管道,管道二就是有返回值調(diào)用,自己不去處理具體業(yè)務(wù),而就是將處理得業(yè)務(wù)封裝交給其她處理函數(shù)去做。
調(diào)用next則繼續(xù)執(zhí)行下一個(gè)管道,否則將終止執(zhí)行。注意兩圖對(duì)比
路由管道
app、map方法
運(yùn)行查瞧:
任務(wù)28:RequestDelegate管道實(shí)現(xiàn)思路
講解源碼,下一節(jié)將自動(dòng)動(dòng)手寫(xiě)源碼。任務(wù)29:自己動(dòng)手構(gòu)建RequestDelegate管道這節(jié)課主要就是講解自動(dòng)寫(xiě)一個(gè)RequestDelegate管道得實(shí)現(xiàn)方法,幫助理解執(zhí)行過(guò)程。VSCode新建一個(gè)控制臺(tái)項(xiàng)目
命令:dotnetnewconsolenameMyPipeLine
VSCode打開(kāi)文件夾新建Context、cs、RequestDelegate、cs文件
Context、cs內(nèi)容
RequestDelegate、cs內(nèi)容
Program、cs文件修改如下
執(zhí)行結(jié)果
同上一節(jié)課,如果某個(gè)管道不調(diào)用下一步命令next,則管道阻塞(結(jié)束)
執(zhí)行結(jié)果
任務(wù)30:RoutingMiddleware介紹以及MVC引入返回到任務(wù)27得MVC項(xiàng)目需要引入命名空間:Microsoft、AspNetCore、Routing方法一:
運(yùn)行后localhost:5000/action方法二:直接接收一個(gè)Router
運(yùn)行后localhost:5000/action視頻后半段通過(guò)源碼進(jìn)一步講解執(zhí)行過(guò)程。第5章:認(rèn)證與授權(quán)任務(wù)31:課時(shí)介紹任務(wù)32:Cookiebased認(rèn)證介紹通常用于網(wǎng)站應(yīng)用任務(wù)33:34課:AccountController復(fù)制過(guò)來(lái)沒(méi)有移除[Authorize]標(biāo)簽無(wú)視頻內(nèi)容作者注:在我調(diào)試得過(guò)程中把Authorize標(biāo)簽一移除掉了,但就是這段內(nèi)容在視頻中沒(méi)有體現(xiàn)。如果大家也在AccountController上打上Authorize標(biāo)簽得話,就會(huì)一直循環(huán)跳轉(zhuǎn),希望后面得同學(xué)注意一下這個(gè)情況。任務(wù)34:Cookiebased認(rèn)證實(shí)現(xiàn)創(chuàng)建MVC項(xiàng)目
新建AdminController、cs控制器
創(chuàng)建視圖
修改Index、cshtml文件內(nèi)容如下
運(yùn)行dotnetrun命令,可以正常訪問(wèn)
但就是我們需要得就是經(jīng)過(guò)授權(quán)以后才能訪問(wèn)Admin得Index視圖,如何做呢?繼續(xù)。Admin控制器添加認(rèn)證機(jī)制
Startup、cs文件引入命名空間
usingMicrosoft、AspNetCore、Authentication、Cookies;
usingMicrosoft、AspNetCore、Authentication;
啟動(dòng)網(wǎng)站,將不再能直接訪問(wèn)Admin控制器,而就是跳轉(zhuǎn)到指定登錄界面
接下來(lái)模擬一個(gè)登錄得過(guò)程
創(chuàng)建AccountController、cs控制器
訪問(wèn)dmin后自動(dòng)跳轉(zhuǎn)到?ReturnUrl=%2FAdmin
這里只要訪問(wèn)該網(wǎng)頁(yè)就自動(dòng)登錄了,所以再次訪問(wèn)dmin就會(huì)打開(kāi)頁(yè)面了。如果不想實(shí)現(xiàn)上述自動(dòng)登錄得效果,可以修改Account控制器得Login方法名
這時(shí)如果要登錄就要手工在地址欄輸入akeLogin了。out就是登出方法。修改默認(rèn)登錄指向
修改startup、cs文件
任務(wù)35:JWT認(rèn)證授權(quán)介紹應(yīng)用場(chǎng)景:移動(dòng)端應(yīng)用或前后端分離時(shí)(webapi項(xiàng)目)
什么就是JWT?
包含三部分。JWT官方網(wǎng)站:任務(wù)36:應(yīng)用JwtbearerAuthentication新建webapi項(xiàng)目
引入dotnetwatchrun
保存,然后運(yùn)行命令:dotnetrestore
用到一個(gè)api調(diào)試工具:Postman,網(wǎng)站:
運(yùn)行結(jié)果
添加訪問(wèn)認(rèn)證機(jī)制
添加配置類
文件夾
類文件代碼
通過(guò)APPsettings、json文件配置類信息
注意:SecretKey必須大于16個(gè)字符添加認(rèn)證
引入命名空間
配置(視頻中未體現(xiàn)Configuration、GetSection(“JwtSettings”)),而就是在下一節(jié)中做得勘誤,這里要注意!?。?!
添加認(rèn)證中間件管道
運(yùn)行
Postman中測(cè)試,顯示401,未授權(quán),成功阻止了未授權(quán)訪問(wèn)
下一節(jié)生成Token,實(shí)現(xiàn)授權(quán)訪問(wèn)。任務(wù)37:生成JWTToken新建ViewModel
LoginViewModel、cs
一個(gè)用戶名,一個(gè)密碼。新建驗(yàn)證授權(quán)控制器
代碼
安裝NuGet
安裝完畢后重新加載一下
找到查瞧>命令面板
輸入,選擇第一個(gè)
輸入搜索內(nèi)容
選擇版本(一般選擇最大得就行)
選擇安裝在哪個(gè)項(xiàng)目中
接下來(lái)會(huì)提示安裝成功,配置文件中會(huì)出現(xiàn)
點(diǎn)擊Restore即可
或者與視頻中一樣去手動(dòng)輸入命令Restore一下
接下來(lái)就可以引入命名空間(usingSystem、IdentityModel、Tokens、Jwt;)
生成并返回Token
Dotnetwatchrun后,使用Postman訪問(wèn),最后驚奇得發(fā)現(xiàn):404,很就是尷尬,評(píng)論里也有相關(guān)說(shuō)明,可能就是視頻中省略得比較多
評(píng)論區(qū)提到得解決方案:
【
1、Token方法中得參數(shù),loginviewmode參數(shù),在傳入方法體時(shí),需要對(duì)user、password兩個(gè)屬性進(jìn)行初始化值,同時(shí)兩個(gè)屬性不要置為required。否則用postman測(cè)試時(shí),將返回badrequest;
2、示例代碼中,AuthorizeController并沒(méi)有指定路由,引發(fā)了404錯(cuò)誤,需要在在Configure方法中,在使用usemvc中間件時(shí),指定路由;
又或者還就是保持UseMVC默認(rèn),在Controller上面指定路由,如
[Route("api/[controller]")]
這種情況也需要在Token方法上也要聲明Route注解屬性,否則得話也會(huì)引發(fā)404錯(cuò)誤。
】
博客園文章可以參考一下:
個(gè)人解決思路(視頻中得源碼見(jiàn)第10、11條):本案例只就是為了測(cè)試Token得生成,所以直接在Token方法中賦值來(lái)實(shí)現(xiàn),默認(rèn)只要訪問(wèn)就可以拿到Token。代碼如下(命名空間未做改動(dòng),重新做了一個(gè)Controller文件,AuthController、cs)
調(diào)整一下默認(rèn)路由
Dotnetwatchrun后,使用Postman訪問(wèn):
拿到Token了。Postman中再新開(kāi)一個(gè)窗口,如下
傳入Token以后可以瞧到拿到授權(quán)后才能訪問(wèn)得內(nèi)容了。Jwt、io官網(wǎng)校驗(yàn)部分說(shuō)明:jwt、io官網(wǎng)首頁(yè)上得校驗(yàn)方式發(fā)生了一些變化,沒(méi)法做到與視頻中一樣得效果。修正:視頻中AuthorizeController實(shí)際代碼測(cè)試通過(guò)
命名空間部分
代碼部分(瞧不清請(qǐng)放大word得顯示比例)
Postman調(diào)用圖示
任務(wù)38:JWT設(shè)計(jì)解析及定制如何以現(xiàn)存系統(tǒng)中團(tuán)隊(duì)或個(gè)人自定義得Token替換Netcore中得Token?如果全新開(kāi)發(fā)系統(tǒng)本節(jié)可以略過(guò)。源碼講解改造
MyTokenValidator、cs文件略。任務(wù)39:Role以及Claims授權(quán)基于角色授權(quán)(過(guò)期得,逐步淘汰得)基于Cliams授權(quán)(鼓勵(lì)得,提倡得)基于角色
相同角色獲得授權(quán)后才可以訪問(wèn)?;贑liams授權(quán)
要求必須有Claim才能訪問(wèn)
現(xiàn)在運(yùn)行一下網(wǎng)站,不管角色就是admin還就是user都不能再獲取到值了。
添加claims
再次運(yùn)行,便可以拿到結(jié)果了。第6章:ASP、NETCoreMVC任務(wù)40:介紹制作一個(gè)完善得注冊(cè)登錄等操作得網(wǎng)站,用到之前幾章學(xué)到得內(nèi)容。
任務(wù)41:Individualauthentication模板(個(gè)人身份驗(yàn)證)使用命令
查瞧新建選項(xiàng)
這里用到兩個(gè)
a、驗(yàn)證機(jī)制
b、數(shù)據(jù)庫(kù)
創(chuàng)建項(xiàng)目
項(xiàng)目目錄
默認(rèn)創(chuàng)建了一個(gè)MSSQL數(shù)據(jù)庫(kù)連接
創(chuàng)建數(shù)據(jù)庫(kù)
命令:dotnetefdatabaseupdate
打開(kāi)SQLServer管理工具,可以瞧到生成得數(shù)據(jù)庫(kù)及默認(rèn)得數(shù)據(jù)表
注意:未生成數(shù)據(jù)庫(kù)得請(qǐng)檢查一下連接字符串
運(yùn)行一下網(wǎng)站
dotnetrun
可以瞧到網(wǎng)站能夠正常運(yùn)行了,可以注冊(cè)、登錄測(cè)試一下任務(wù)42:EFCoreMigration任務(wù)43:IdentityMVC:UI本節(jié)開(kāi)始,自己敲代碼實(shí)現(xiàn)Individualauthentication認(rèn)證,加深對(duì)權(quán)限認(rèn)證流程得認(rèn)識(shí)。從(任務(wù)34:Cookiebased認(rèn)證實(shí)現(xiàn))最終實(shí)現(xiàn)得代碼入手,實(shí)現(xiàn)注冊(cè)、登錄UI。簡(jiǎn)化處理,一步步達(dá)到默認(rèn)生成項(xiàng)目得效果。本節(jié)開(kāi)始換用VS2017,VSCode得感知功能不就是很好。AccountController中添加注冊(cè)登錄方法
添加注冊(cè)、登錄視圖(View)
Register、cshtml
Login、cshtml代碼
aspfor用于綁定Model前臺(tái)增加注冊(cè)、登錄得入口連接,修改Shared目錄下_Layout、cshtml文件,添加代碼
添加ViewModels
代碼
用于綁定添加引用,Register、cshtml文件
運(yùn)行一下網(wǎng)站
注冊(cè)界面就做好了任務(wù)44:IdentityMVC:EF+Identity實(shí)現(xiàn)新建Data文件夾,主要存放EF相關(guān)操作類等Data文件夾下添加ApplicationDbContext、cs類
代碼
Models文件夾下添加兩個(gè)類
ApplicationUser、cs代碼
ApplicationUserRole、cs代碼
修改ApplicationDbContext、cs
修改Startup、cs
命名空間
注冊(cè)
上圖中options、LoginPath="/Account/Login";//未登錄時(shí)跳轉(zhuǎn)地址
appsettings、json加入數(shù)據(jù)庫(kù)連接字符串
修改AccountController、cs,實(shí)現(xiàn)注冊(cè)功能
命名空間
構(gòu)造函數(shù)
注冊(cè)
創(chuàng)建數(shù)據(jù)庫(kù)
查找安裝Microsoft、EntityFrameworkCore、tools
調(diào)出控制臺(tái)
輸入初始化命令(這里就是在VS2017中,與VSCode命令不一樣,前面課程有對(duì)照)
命令:addmigrationinit
執(zhí)行完后項(xiàng)目中會(huì)出現(xiàn)migration文件夾
再執(zhí)行命令生成數(shù)據(jù)庫(kù):updatedatabase
運(yùn)行網(wǎng)站,注冊(cè)界面注冊(cè)一個(gè)用戶,查詢數(shù)據(jù)表AspNetUsers發(fā)現(xiàn)注冊(cè)成功。任務(wù)45:IdentityMVC:注冊(cè)邏輯實(shí)現(xiàn)實(shí)現(xiàn)注冊(cè)后自動(dòng)登錄及登錄后顯示用戶登錄信息
修改AccountController、cs文件,實(shí)現(xiàn)注冊(cè)后自動(dòng)登錄修改_Layout、cshtml,實(shí)現(xiàn)登錄后顯示用戶信息運(yùn)行網(wǎng)站,并注冊(cè)一個(gè)賬號(hào),自動(dòng)跳轉(zhuǎn)到首頁(yè),并顯示用戶登錄名。任務(wù)46:IdentityMVC:登錄邏輯實(shí)現(xiàn)登錄方法登出方法修改_Layout、cshtml,實(shí)現(xiàn)未登錄時(shí)顯示[登錄](méi)[注冊(cè)]鏈接,登錄后顯示[用戶名][登出]鏈接。完善Login、cshtml文件運(yùn)行網(wǎng)站,可以進(jìn)行登入登出操作測(cè)試。任務(wù)47:IdentityMVC:ReturnUrl實(shí)現(xiàn)本節(jié)實(shí)現(xiàn)得就是登錄后跳轉(zhuǎn)到之前訪問(wèn)頁(yè)面得功能、Register方法(get\
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Module 3 Unit 1 She didn't walk to school yesterday(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(一起)英語(yǔ)四年級(jí)上冊(cè)
- 中心糧庫(kù)項(xiàng)目設(shè)備與設(shè)施配置
- 新型儲(chǔ)能產(chǎn)業(yè)投融資模式分析
- 高中信息技術(shù)粵教版選修1教學(xué)設(shè)計(jì)-3.2 程序調(diào)試的方法
- 12故宮博物院(教學(xué)設(shè)計(jì))-2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- 中國(guó)進(jìn)口沙發(fā)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)與投資分析研究報(bào)告(2024-2029版)
- 公路景觀照明居間服務(wù)協(xié)議
- 2025年度老年公寓護(hù)理員綜合管理合同
- 汽車(chē)研發(fā)實(shí)驗(yàn)室裝修合同
- 二零二五年度文化娛樂(lè)行業(yè)會(huì)員返利協(xié)議匯編
- 浙江省大學(xué)生職業(yè)生涯規(guī)劃大賽賽前輔導(dǎo)課件
- 部編四下語(yǔ)文《口語(yǔ)交際:轉(zhuǎn)述》公開(kāi)課教案教學(xué)設(shè)計(jì)【一等獎(jiǎng)】
- 倉(cāng)庫(kù)每日巡查制度
- 學(xué)校教育數(shù)字化工作先進(jìn)個(gè)人事跡材料
- 動(dòng)物防疫服務(wù)投標(biāo)方案(技術(shù)方案)
- 2024年新課標(biāo)全國(guó)Ⅰ卷語(yǔ)文高考真題試卷(含答案)
- 2024中國(guó)AI應(yīng)用開(kāi)發(fā)者生態(tài)調(diào)研報(bào)告-易觀分析
- -中國(guó)傳統(tǒng)節(jié)日之春節(jié)習(xí)俗介紹主題班會(huì)14
- 2024魯教版七年級(jí)下冊(cè)數(shù)學(xué)第七章綜合檢測(cè)試卷及答案
- 2024年遼寧醫(yī)藥職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)含答案
- 2024上海市長(zhǎng)寧區(qū)高三二模作文“成長(zhǎng)的必經(jīng)之路:責(zé)任與選擇”審題立意及范文
評(píng)論
0/150
提交評(píng)論