本篇內容主要講解“ASP.NET Core2.0 MVC項目怎么創(chuàng)建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ASP.NET Core2.0 MVC項目怎么創(chuàng)建”吧!
站在用戶的角度思考問題,與客戶深入溝通,找到桐城網(wǎng)站設計與桐城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設計制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋桐城地區(qū)。
項目介紹
畢業(yè)論文的課題是一個大學生的一個報名系統(tǒng),主要是為了完成大學生報名過程中的一些數(shù)據(jù)維護,當然最后因為實在來不及了,好多都沒做。。。項目主要使用到的相關技術如下所示:
1)項目框架:ASP.NET Core 2.0 MVC
2)ORM:Entity Framework Core(使用Code First)
3)數(shù)據(jù)庫引擎:MySQL SERVER 5.7
4)權限驗證:基于策略的權限驗證(Policy-Based Authorization)
5)前端框架:AdminLte(一個基于Bootstrap的開源前端UI)
6)表格控件:Jquery Datatables
7)數(shù)據(jù)可視化組件:Echarts
8)日志記錄:nlog
設計與實現(xiàn)介紹
項目架構采用的是多層架構,通過拆分不同的功能領域,實現(xiàn)各個功能間的相對獨立,項目在VS中搭建完成后如下圖所示。
01_Entity:實體層,包含PSU.Entity這一個系統(tǒng)組件,用于存儲數(shù)據(jù)庫中表所對應的C#對象實體。
02_Infrastructure:基礎架構層,包含PSU.EFCore、PSU.Utility兩個系統(tǒng)組件。PSU.EFCore類庫通過引用Entity Framework Core來完成對于數(shù)據(jù)庫的操作。PSU.Utility類庫中包含系統(tǒng)開發(fā)過程中可能用到的幫助類文件。
03_Logic:邏輯層,包含PSU.Domain、PSU.Repository兩個系統(tǒng)組件。PSU.Domain用于繼承每個領域的接口類庫(PSU.IService),實現(xiàn)領域接口中的功能。PSU.Repository用來實現(xiàn)PSU.Domain類庫中所包含的對于數(shù)據(jù)庫的操作。
04_Rule:規(guī)則層,包含PSU.IService、PSU.Model這兩個系統(tǒng)組件。PSU.IService為系統(tǒng)領域功能接口類庫,PSU.Model為視圖所對應的數(shù)據(jù)充血模型,對應MVC模式中的實體Model。
Controller.PSU:控制器層,.NET Core類庫,用來存放MVC模式中的各種控制器文件。
PSU.Site:表現(xiàn)層,ASP.NET Core MVC項目,項目主程序。
系統(tǒng)權限驗證設計:
整個系統(tǒng)分為三種角色,分別為管理員、教職工、學生用戶,通過使用Area搭建每個角色的頁面,通過在Controller上添加Area特性,指定當前Controller屬于的角色。在創(chuàng)建用戶時,會指定用戶的角色字段,當用戶登錄成功后,會根據(jù)用戶角色進行Claim的創(chuàng)建,通過自定義的AuthorizztionHandler來實現(xiàn)對于當前系統(tǒng)的角色權限控制。
當用戶登錄成功后,會將當前的用戶信息賦值給一個靜態(tài)類(使用Session進行存儲),對于判斷用戶是否登錄,則是通過自定義一個控制器的基類,重寫OnActionExecuting方法來實現(xiàn)對于用戶是否登錄的判斷,實現(xiàn)代碼如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| /// /// 自定義控制器基類 /// public class DanvicController : Controller { /// /// 判斷用戶是否登錄 /// /// public override void OnActionExecuting(ActionExecutingContext filterContext) { if (CurrentUser.UserId == 0) { string path = filterContext.HttpContext.Request.Path; filterContext.Result = new RedirectResult($"/Secret/Login?ReturnUrl={path}"); return; } base.OnActionExecuting(filterContext); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| /// /// 當前登錄的用戶信息 /// public static class CurrentUser { #region Initialize
private static IHttpContextAccessor _httpContextAccessor;
private static ISession _session => _httpContextAccessor.HttpContext.Session;
public static void Configure(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; }
#endregion
#region Attribute
/// /// 用戶主鍵 /// public static string UserOID { get => _session == null ? "" : _session.GetString("CurrentUser_UserOID"); set => _session.SetString("CurrentUser_UserOID", !string.IsNullOrEmpty(value) ? value : ""); }
/// ///用戶編號 /// public static long UserId { get => _session == null ? 0 : Convert.ToInt64(_session.GetString("CurrentUser_UserId")); set => _session.SetString("CurrentUser_UserId", value != 0 ? value.ToString() : "0"); }
/// /// 用戶姓名 /// public static string UserName { get => _session == null ? "" : _session.GetString("CurrentUser_UserName"); set => _session.SetString("CurrentUser_UserName", !string.IsNullOrEmpty(value) ? value : ""); }
/// /// 用戶登錄賬戶 /// public static string UserAccount { get => _session == null ? "" : _session.GetString("CurrentUser_UserAccount"); set => _session.SetString("CurrentUser_UserAccount", !string.IsNullOrEmpty(value) ? value : ""); }
/// /// 用戶頭像地址 /// public static string UserImage { get => _session == null ? "" : _session.GetString("CurrentUser_UserImage"); set => _session.SetString("CurrentUser_UserImage", !string.IsNullOrEmpty(value) ? value : ""); }
/// /// 用戶角色 /// public static string UserRole { get => _session == null ? "" : _session.GetString("CurrentUser_UserRole"); set => _session.SetString("CurrentUser_UserRole", !string.IsNullOrEmpty(value) ? value : ""); }
/// /// 主頁地址 /// public static string UserPage { get => _session == null ? "" : _session.GetString("CurrentUser_UserPage"); set => _session.SetString("CurrentUser_UserPage", !string.IsNullOrEmpty(value) ? value : ""); }
#endregion }
|
到此,相信大家對“ASP.NET Core2.0 MVC項目怎么創(chuàng)建”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
新聞標題:ASP.NETCore2.0MVC項目怎么創(chuàng)建
網(wǎng)站鏈接:
http://weahome.cn/article/jpiohi.html