温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET Core2.0 MVC项目怎么创建

发布时间:2021-12-06 15:03:15 来源:亿速云 阅读:116 作者: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