中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET Core2.0 MVC項目怎么創建

發布時間:2021-12-06 15:03:15 來源:億速云 閱讀:130 作者:iii 欄目:云計算

本篇內容主要講解“ASP.NET Core2.0 MVC項目怎么創建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ASP.NET Core2.0 MVC項目怎么創建”吧!

項目介紹

        畢業論文的課題是一個大學生的一個報名系統,主要是為了完成大學生報名過程中的一些數據維護,當然最后因為實在來不及了,好多都沒做。。。項目主要使用到的相關技術如下所示:
        1)項目框架:ASP.NET Core 2.0 MVC
        2)ORM:Entity Framework Core(使用Code First)
        3)數據庫引擎:MySQL SERVER 5.7
        4)權限驗證:基于策略的權限驗證(Policy-Based Authorization)
        5)前端框架:AdminLte(一個基于Bootstrap的開源前端UI)
        6)表格控件:Jquery Datatables
        7)數據可視化組件:Echarts
        8)日志記錄:nlog

設計與實現介紹

        項目架構采用的是多層架構,通過拆分不同的功能領域,實現各個功能間的相對獨立,項目在VS中搭建完成后如下圖所示。

        01_Entity:實體層,包含PSU.Entity這一個系統組件,用于存儲數據庫中表所對應的C#對象實體。
        02_Infrastructure:基礎架構層,包含PSU.EFCore、PSU.Utility兩個系統組件。PSU.EFCore類庫通過引用Entity Framework Core來完成對于數據庫的操作。PSU.Utility類庫中包含系統開發過程中可能用到的幫助類文件。
        03_Logic:邏輯層,包含PSU.Domain、PSU.Repository兩個系統組件。PSU.Domain用于繼承每個領域的接口類庫(PSU.IService),實現領域接口中的功能。PSU.Repository用來實現PSU.Domain類庫中所包含的對于數據庫的操作。
        04_Rule:規則層,包含PSU.IService、PSU.Model這兩個系統組件。PSU.IService為系統領域功能接口類庫,PSU.Model為視圖所對應的數據充血模型,對應MVC模式中的實體Model。
        Controller.PSU:控制器層,.NET Core類庫,用來存放MVC模式中的各種控制器文件。
        PSU.Site:表現層,ASP.NET Core MVC項目,項目主程序。

        系統權限驗證設計:
        整個系統分為三種角色,分別為管理員、教職工、學生用戶,通過使用Area搭建每個角色的頁面,通過在Controller上添加Area特性,指定當前Controller屬于的角色。在創建用戶時,會指定用戶的角色字段,當用戶登錄成功后,會根據用戶角色進行Claim的創建,通過自定義的AuthorizztionHandler來實現對于當前系統的角色權限控制。
        當用戶登錄成功后,會將當前的用戶信息賦值給一個靜態類(使用Session進行存儲),對于判斷用戶是否登錄,則是通過自定義一個控制器的基類,重寫OnActionExecuting方法來實現對于用戶是否登錄的判斷,實現代碼如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/// <summary>
/// 自定義控制器基類
/// </summary>
public class DanvicController : Controller
{
   /// <summary>
   /// 判斷用戶是否登錄
   /// </summary>
   /// <param name="filterContext"></param>
   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
/// <summary>
/// 當前登錄的用戶信息
/// </summary>
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

   /// <summary>
   /// 用戶主鍵
   /// </summary>
   public static string UserOID
   {
       get => _session == null ? "" : _session.GetString("CurrentUser_UserOID");
       set => _session.SetString("CurrentUser_UserOID", !string.IsNullOrEmpty(value) ? value : "");
   }

   /// <summary>
   ///用戶編號
   /// </summary>
   public static long UserId
   {
       get => _session == null ? 0 : Convert.ToInt64(_session.GetString("CurrentUser_UserId"));
       set => _session.SetString("CurrentUser_UserId", value != 0 ? value.ToString() : "0");
   }

   /// <summary>
   /// 用戶姓名
   /// </summary>
   public static string UserName
   {
       get => _session == null ? "" : _session.GetString("CurrentUser_UserName");
       set => _session.SetString("CurrentUser_UserName", !string.IsNullOrEmpty(value) ? value : "");
   }

   /// <summary>
   /// 用戶登錄賬戶
   /// </summary>
   public static string UserAccount
   {
       get => _session == null ? "" : _session.GetString("CurrentUser_UserAccount");
       set => _session.SetString("CurrentUser_UserAccount", !string.IsNullOrEmpty(value) ? value : "");
   }

   /// <summary>
   /// 用戶頭像地址
   /// </summary>
   public static string UserImage
   {
       get => _session == null ? "" : _session.GetString("CurrentUser_UserImage");
       set => _session.SetString("CurrentUser_UserImage", !string.IsNullOrEmpty(value) ? value : "");
   }

   /// <summary>
   /// 用戶角色
   /// </summary>
   public static string UserRole
   {
       get => _session == null ? "" : _session.GetString("CurrentUser_UserRole");
       set => _session.SetString("CurrentUser_UserRole", !string.IsNullOrEmpty(value) ? value : "");
   }

   /// <summary>
   /// 主頁地址
   /// </summary>
   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項目怎么創建”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大埔区| 金昌市| 绵阳市| 石阡县| 察雅县| 乳山市| 镇巴县| 德兴市| 班玛县| 新巴尔虎右旗| 扎赉特旗| 滕州市| 曲靖市| 行唐县| 云霄县| 驻马店市| 天全县| 伽师县| 东阳市| 余庆县| 轮台县| 娄烦县| 邳州市| 榆树市| 凤阳县| 顺义区| 贺州市| 红安县| 运城市| 永胜县| 海安县| 苗栗县| 开江县| 崇义县| 侯马市| 宁明县| 峨山| 石门县| 桃园市| 彰武县| 丹寨县|