本文目录
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生态尽量完善起来。没有完美的程序就像没有完美的人,我还在努力;欢迎推荐。

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-3项目架构说明的更多相关文章

  1. net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-2项目搭建

    系统要求 首先建议采用 Windows 10 专业版/企业版/教育版,且必须是64位操作系统,原因是docker装起来比较方便,Win7装起来比较麻烦,且不确定是否有其他问题(自己没有实践过) 其次W ...

  2. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  3. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案

    本文目录1. Net下日志记录2. NLog的使用    2.1 添加nuget引用NLog.Web.AspNetCore    2.2 配置文件设置    2.3 依赖配置及调用    2.4 日志 ...

  4. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-2项目说明和源码下载

    本文目录1. 摘要2. Window下运行 3.linux下运行4. 开发记录5. 总结 1.概要 写<Asp.Net Core 2.0 项目实战>系列断断续续已经很长时间了,期间很多朋友 ...

  5. net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了   原文链接:https://www.cnblogs.com/yilezhu/p/9985451.ht ...

  6. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-13基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

    1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...

  7. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-10项目各种全局帮助类

    本文目录 1.  前沿2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装3.XmlHelper快速操作xml文档4.SerializationHe ...

  8. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-9项目各种全局帮助类

    本文目录 1.  前沿2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装3.XmlHelper快速操作xml文档4.SerializationHe ...

  9. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-7项目缓冲方案( Redis)

    本文目录1. 摘要2. Redis配置3. RedisHelper4.使用实例 5. 总结 1.  摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数据存储在 ...

随机推荐

  1. ansible笔记(6):常用模块之命令类模块

    ansible笔记():常用模块之命令类模块 command模块 command模块可以帮助我们在远程主机上执行命令 注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处 ...

  2. Sql语句之并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)

    UNION 查询选修了180101号或180102号课程或二者都选修了的学生学号.课程号和成绩. (SELECT  学号, 课程号, 成绩 FROM   学习 WHERE   课程号='180101' ...

  3. PHP中使用Redis长连接笔记

    pconnect函数声明 其中time_out表示客户端闲置多少秒后,就断开连接.函数连接成功返回true,失败返回false: pconnect(host, port, time_out, pers ...

  4. LuoGu P1541 乌龟棋

    题目传送门 乌龟棋我并不知道他为啥是个绿题0.0 总之感觉思维含量确实不太高(虽然我弱DP)(毛多弱火,体大弱门,肥胖弱菊,骑士弱梯,入侵弱智,沙华弱Dp) 总之,设计出来状态这题就很简单了 设 f[ ...

  5. 判断iOS版本号

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) {  }

  6. python中的zip、map、reduce 、lambda、filter函数的使用

    飞机票 lambda函数 lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是 ...

  7. Oracle SQL高级编程——分析函数(窗口函数)全面讲解

    Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...

  8. Confluence 6 安全相关问题提交链接

    找到和报告安全漏洞 Atlassian 有关安全漏洞的报告细节,请参考如何报告一个安全问题(How to Report a Security Issue)链接. 发布 Confluence 安全公共 ...

  9. Confluence 6 用户目录图例 - 只读连接 LDAP 整合本地用户组

    上面的图:Confluence  连接到一 LDAP 目录,权限对本地用户组设置为只读. https://www.cwiki.us/display/CONFLUENCEWIKI/Diagrams+of ...

  10. SS-QT5

    https://blog.csdn.net/sos218909/article/details/78781017