Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了
Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架
Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前端UI预览及下载
Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
Asp.Net Core 2.0 项目实战(5)Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。
Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例
Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
本文目录
1. 摘要
2. 框架介绍3. 权限管理之多一点说明
4. 总结
1. 摘要
NCMVC角色权限管理框架是由最近练习Net Core时抽时间整理的系统,后续能不能发展成一个cms还要看朋友们是否有需要或时间是否充实。这里NCMVC主要还是给想要学习接触Asp.Net Core2.0的朋友们提供一些借鉴以及坑点提醒等,项目现在还有很多不足,以后会尽量完善一些。写这个系列也没有完全按照原来列好的目录正序来写,倒叙/插叙都有也是项目练习到了顺便记录下来仅此而已。中间有朋友留言说没有源码理解起来比较麻烦,这里我也尽我所能尽快把源码发到git上供大家下载。
2. 框架介绍
框架主要包含:数据库访问Ado.Net模式和Ef Core、日志记录、缓存(memcached/redis)等与传统webform下简单三层模式比较相似,方便理解层级关系。对初次学习Asp.Net Core相对容易理解些,难度级别:易。
NC.Common【工具类】:缓存帮助类、配置管理类、加解密、json处理、日志记录等等工具合集
NC.Core【核心库】:数据库操作核心库,现主要是MSSQL操作
NC.Lib【通用类库】:主要是一些全局类库,如:属性类、登录验证类、通用权限验证、配置、异常处理等
NC.Model
【EFCore 数据库model】:DB First模式,坑点:运行命令前项目要能生成成功,才能生成models,不然会报build fail。《Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例》
NC.MVC
【MVC主程序】:现在只实现后台管理、菜单管理、角色权限管理、部门用户管理等,Net Core下cookie与session模式不太相同,登录需要借助Microsoft.AspNetCore.Authentication。网站前台会员后、台管理员同项目登录请参考《Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录》;现在这种模式自我感觉还有点繁琐,如有其它简便实现方式还请留言告知。
3. 权限管理之多一点说明
既然现在项目是权限管理框架,那么权限这块还是要再补充说明一些,在《Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级》中我们已经写过权限管理的实现文体思路,下面之于原来文章一个简单补充。
现权限管理主要是针对菜单以及菜单所拥有哪些权限(按钮action)的一个控制,数据库中添加菜单名称一个别名(controller),别名尽量与菜单链接名一致,并勾选菜单下有哪些操作权限(按钮)。
菜单创建完成后接下来就是程序中控制,全局Controller AdminBase负责权限验证,所有后台Controll继承AdminBase ;如ad_min/article/article_add地址,AdminBase处理时会先找到article_add action判断是否包含属性,NavName和ActionType,如果包含会直接验证权限中是否包含菜单别名(navname)和操作权限(添加按钮actiontype),这样就完成了常规验证。
基于约定大于配置的规则,我们创建菜单时直接就写controller名称,这样不写NavName和ActionType属性时,以Controller+约定(Add、Edit、Del等)进行验证等
总结:主体思路时,约定验证权限+属性验证权限再配合其他验证写法来达到按钮级权限控制。
4. 总结
刚开始写《Asp.Net Core项目实战》系列时从列目录到写第一篇文章Asp.Net Core才1.1当时也是先练习练习,毕竟还不成熟。写到现在已经Net Core2.1,项目周期跨度比较大的,现在越来越多的人加入到Net Core开源行列来,毕竟Net Core是趋势,未来用的人肯定会越来越多。项目实战的时候学习ASP.NET Core技术最快的方式,希望大家多多开源,让Net Core生态尽量完善起来。没有完美的程序就像没有完美的人,我还在努力;欢迎推荐。
Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架的更多相关文章
- Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版
“全书之写印,实系初稿.有时公私琐务猬集,每写一句,三搁其笔:有时兴会淋漓,走笔疾书,絮絮不休:有时意趣萧索,执笔木坐,草草而止.每写一段,自助覆阅,辄摇其首,觉有大不妥者,即贴补重书,故剪刀浆糊乃不 ...
- 使用Asp.Net Core MVC 开发项目实践[第三篇:基于EF Core的扩展]
上篇我们说到了EFCore的基础使用,这篇我们将讲解下基于EFCore的扩展. 我们在Mango.Framework.EFCore类库项目中创建一个类名EFExtended的扩展类,并且引入相关的命名 ...
- 使用Asp.Net Core MVC 开发项目实践[第四篇:基于EF Core的扩展2]
上篇我们说到了基于EFCore的基础扩展,这篇我们讲解下基于实体结合拉姆达表达式的自定义更新以及删除数据. 先说下原理:其实通过实体以及拉姆达表达式生成SQL语句去执行 第一种更新扩展: 自定义更新字 ...
- Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例
本文目录 1. Net下日志记录 2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 ...
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...
- Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
本文目录 1. 摘要 2. Redis配置 3. RedisHelper 4.使用实例 5. 总结 1. 摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数 ...
随机推荐
- Git 设置过滤忽略的文件或文件夹(ignore file)
我们一般向代码仓库提交项目的时候,一般需要忽略编译生成的中间文件以及文件夹的提交,因为它们是无用的,而且也会占用仓库的空间.一般只用提交.pro,.sln,makefile,程序源文件等编译必须用到的 ...
- C# PointToScreen
子窗体定位时,如果主窗口不在左上角,需要根据主窗口的坐标,相减才行. Point p1 = Label.PointToScreen(new Point(0, 0)); p1.X -= this.X; ...
- luogu P4568 [JLOI2011]飞行路线
传送门 看到免费次数\(k\)最多只有10,可以考虑构建\(k+1\)层的分层图,即每一层正常连边,上下两层对应点连边权为0的单向边,最后对所有层里面的\(di_t\)取\(\max\)救星了 #in ...
- B - Internship (网络流关键割边)
题目链接:https://cn.vjudge.net/contest/281961#problem/B 题目大意:给你n个城市,中间有一些中转站,然后给你终点,再给你l条轨道以及流量,问你增加哪几条轨 ...
- es集群数据库~基本安装
1 安装java环境 yum -y install java-1.8.0-openjdk*->需要最新的JDK环境1.82 安装 es curl -L -O https://artifa ...
- windws 下 sublime Text 3 ·安装的安装与激活
下载sublime 我们可以到官网进行下载对应的版本 https://www.sublimetext.com/3 如下是官网的内容(我选择的是Windows 64 bit). Sublime Text ...
- MYSQL和oracle 大小写问题
MySQL的大小写问题 不是一个很大的问题,但是如果不了解的话,却会使用户产生迷惑 :如下面 Sql代码insert into t values('A'); insert into t values( ...
- freeRTOS中文实用教程3--中断管理之中断服务例程中使用队列
1.前言 消息队列不仅可以用于事件通信,还可以用来传递数据 2.实例说明消息队列的执行过程 3.主要API API名称 说明 参数 返回值 xQueueSendFromISR()完全等同于 xQueu ...
- tomcat参数调优
在做java开发时尤其是大型软件开发时经常会遇到内存溢出的问题,比如说OutOfMemoryError等.这是个让开发人员很痛苦.也很纠结的问题,因为我们有时不知道什么样的操作导致了这种问题的发生.所 ...
- echarts地图使用
在使用echarts3当中,地图需要的数据时分开的,需要自己下载,而在echarts3官网上的地图数据只有全国.中国.各省的地图 如果我们需要使用更详细的地图,需要在echarts2的生成需要的地级市 ...