1.前言 这块儿当时在IdentityServer4和JWT之间犹豫了一下,后来考虑到现状,出于3个原因,暂时放弃了IdentityServer4选择了JWT: (1)目前这个前端框架更适配JWT: (2)前后端分离的项目,如果上IdentityServer4,还要折腾点儿工作,比如前端配置.多余的回调等: (3)跨度太大,团队.系统.历史数据接入都是问题,解决是可以解决,但时间有限,留待后续吧: 当然,只是暂时放弃,理想中的最佳实践还是IdentityServer4做统一鉴权的. 2.JWT认…
1.背景 最近,打算新开个项目,鉴于团队技术栈,选型.net core + vue,前后端分离.本打算捡现成的轮子的,github上大致逛了逛,总发现这样那样的不太适合心中那些“完美实践”,例如:Abp vnext好是好,但重度封装,且前端是基于jQuery,后续业务开发估计要大批量操作DOM,写大量JS:WTM虽然简单强大,但也不容易定制化.总之,各式各样的快速开发框架,尤其是后端,总有些不方便扩展或定制化的地方.于是,自己花了差不多半个月业余时间,手撸了一个具有系统管理基础功能的后台管理框架…
1.前言 但凡业务系统,授权是绕不开的一环.见过太多只在前端做菜单及按钮显隐控制,但后端裸奔的,觉着前端看不到,系统就安全,掩耳盗铃也好,自欺欺人也罢,这里不做评论.在.NET CORE中,也见过不少用操作过滤器来实现业务用例权限控制的,至少算是对后端做了权限控制. 但我们知道,操作过滤器,已经算是过滤器管道中最靠后的,基本上紧挨着我们控制器方法执行那里了,本身,操作过滤器也不是做权限控制的地方,虽然本身它能达到权限控制效果.为什么这么说,试想下,在过滤器管道之前,还有中间件处理管道,即便是过滤…
1.前言 上篇,我们讲了后端的授权.与后端不同,前端主要是通过功能入口如菜单.按钮的显隐来控制授权的.具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮.我们一个个来讲. 2.侧边栏菜单 鉴于本项目使用了vue-router,那显然,侧边栏就会跟对应路由关联,同时,前端项目会注册路由导航事件,此事件见src根目录下permission.js: 截图中,上边的红框代表是在注册路由跳转前回调钩子,此钩子可以根据具体情况决定是否需要导航到目的路由或导航到其他路由.下边的红框先调…
1.背景 前阵子有园友留言,提到日志相关的东西,同时,最近圈子里也有提到日志这个东西.一个充分.集中的统一日志平台还是很有必要的,否则系统出问题了只能靠猜或者干瞪眼.何谓充分,日志记录满足最低要求.出问题方便定位.可追溯.可追责,最重要的,方便扯皮:何谓集中,各子系统或服务日志都怼到一个地方,想看日志直接去日志平台去看,且方便检索.聚类,而不是需要每个服务.每台服务器逐个远程去翻扯.这里,就结合项目实践,聊下怎么方便.快捷.低成本的实现统一日志平台. 2.技术栈 .NET CORE + log4…
1.前言 APM,又称应用性能统计,主要用来跟踪请求调用链,每个环节调用耗时,为我们诊断系统性能.定位系统问题提供了极大便利.本系统采用的是Elastic Stack体系中的APM,主要是之前部门搞PCI认证,其中有一环ELK,而刚好ELK就是我搭建的,这里就顺便使用ELK体系的APM,没必要再另起一套了. 2.实现 首先,你需要搭建好ELK平台,这里搭建过程不做赘述,大家参考Elastic Stack官网,简单明了. 然后,安装Elastic APM Server,就是一个Linux RPM包…
1.前言 作为前后端分离的项目,或者说但凡涉及到对外服务的后端,一个自描述,跟代码实时同步的文档是极其重要的.说到这儿,想起了几年前在XX速运,每天写完代码,还要给APP团队更新文档的惨痛经历.给人家普及swagger,说不习惯,就要手写的Word文档. 闲话少扯.一份合格的文档,最起码要包括rest地址,HTTP方法,入参出参,入参出参的描述,如果接口包括授权,swagger文档还需要对应包括这部分的处理.做到这点,前端团队必定会感激你的,而且一个靠谱的前端,它也一定会要求你这么做的.再闲扯一…
1.down源码 git clone https://github.com/KINGGUOKUN/SystemManagement.git,项目目录如下: 2.还原数据库 找到项目根目录下SystemManagement.sql,还原进MySQL,这里不做演示. 3.运行后端系统 打开解决方案,重新生成,修改appsetting.json中数据库链接,F5 4.运行前端 进入前端根目录(/ClientApp),删除此目录下的package-lock.json(如果存在的话),从此目录进入命令行,…
hsweb 详细介绍 业务功能 现在: 权限管理: 权限资源-角色-用户. 配置管理: kv结构,自定义配置.可通过此功能配置数据字典. 脚本管理: 动态脚本,支持javascript,groovy,java动态编译执行. 表单管理: 动态表单,可视化设计表单,自动生成数据库以及系统权限.无需重启直接生效. 模块设置: 配合动态表单实现表格页,查询条件自定义. 数据库维护: 在线维护数据库,修改表结构,执行sql. 数据源管理: 配置多数据源. 代码生成器: 在线生成代码,打包下载.可自定义模板…
注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ASP.NET终于可以跨平台了,但是不是我们常用的ASP.NET, 而是叫一个ASP.NET Core的新平台,他可以跨Windows, Linux, OS X等平台来部署你的web应用程序,你可以理解为,这个框架就是ASP.NET的下一个版本,相对于传统ASP.NET程序,它还是有一些不同的地方的,比…