真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NETCore2.0MVC項目怎么創(chuàng)建

本篇內容主要講解“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

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部