api权限的分配。
拿到最新的项目首先是F6编译一下。
创建一个新控制器
4、Admin 权限分配操作_端接
默认生成包含增删改的api
4、Admin 权限分配操作_拦截器_02
运行后端api项目,可以搜索到刚才添加的demoApi
4、Admin 权限分配操作_数据_03
运行测试一下
4、Admin 权限分配操作_ico_04
打开admin前端项目,运行起来。
4、Admin 权限分配操作_数据_05

后端使用的注意事项。这里的Name等于Get

4、Admin 权限分配操作_ico_06
再添加一个控制器
4、Admin 权限分配操作_端接_07

4、Admin 权限分配操作_拦截器_08
创建后,直接运行就会报错
4、Admin 权限分配操作_拦截器_09
4、Admin 权限分配操作_端接_10

4、Admin 权限分配操作_ico_11
属性路由有相同的Get模板。
4、Admin 权限分配操作_ico_12
一个是在在DefaultController里面一个是在DemoApiController里面。
4、Admin 权限分配操作_ico_13
Name等于Get的Action。第一次添加一个控制器是没有问题的,再添加一个控制器就会报错。
4、Admin 权限分配操作_数据_14
可以把Name等于get去掉就可以了
4、Admin 权限分配操作_ico_15

前端

4、Admin 权限分配操作_ico_16
配置刚才控制器添加的接口。
4、Admin 权限分配操作_端接_17
4、Admin 权限分配操作_端接_18
当前测试账号不能添加、删除和编辑操作。
4、Admin 权限分配操作_ico_19
使用超级管理员登陆
4、Admin 权限分配操作_拦截器_20
需要修改管理员的密码。把test密码复制给admin
4、Admin 权限分配操作_端接_21

4、Admin 权限分配操作_数据_22

4、Admin 权限分配操作_端接_23
在本系统里面判断权限是在route后面加了Action。通过Action的名字来判断的。这种写方法,可以。但是不可取。这么加的话,就不是原则意义上的Restful风格了。
4、Admin 权限分配操作_数据_24

如果是自己开发的话,尽量是url+谓词的方式。
前面url相同 后面的请求方式不同,就是post、get、put、delete这些方式。大概就是这个意思。
4、Admin 权限分配操作_ico_25

加上Action后,接口发生了变化。接口地址就带上了Action的名字。
4、Admin 权限分配操作_asp.net core 2.2_26
添加接口。
4、Admin 权限分配操作_asp.net core 2.2_27
接口添加好了。
4、Admin 权限分配操作_ico_28

配置菜单

views下新建Demo文件夹,然后在文件夹下新建Index.vue
4、Admin 权限分配操作_asp.net core 2.2_29
前端随便写点东西
4、Admin 权限分配操作_asp.net core 2.2_30
这样页面就算市创建好了。
4、Admin 权限分配操作_拦截器_31
页面创建好后,录入到系统内。
4、Admin 权限分配操作_ico_32
icon在这里找的
4、Admin 权限分配操作_数据_33

4、Admin 权限分配操作_ico_34

4、Admin 权限分配操作_端接_35
4、Admin 权限分配操作_asp.net core 2.2_36
然后这里的图标就添加上了。 
4、Admin 权限分配操作_拦截器_37

添加二级菜单

4、Admin 权限分配操作_拦截器_38

4、Admin 权限分配操作_端接_39
菜单并不是每次都是从后台读取的。存储在LocalStorage里面的有一个router路由。
4、Admin 权限分配操作_拦截器_40
4、Admin 权限分配操作_数据_41
所以添加了新的菜单需要退出重新登陆系统。
还需要给这个角色配置上菜单。当前登陆的是超级管理员。角色是SuperAdmin
4、Admin 权限分配操作_数据_42

4、Admin 权限分配操作_ico_43

4、Admin 权限分配操作_asp.net core 2.2_44
设置成功后,再重新登陆系统
路由地址需要改成大小写对应的
4、Admin 权限分配操作_数据_45

4、Admin 权限分配操作_数据_46
路由的配置,主要是这块的代码。
4、Admin 权限分配操作_端接_47

读取api

导出一个demo模块。所有的api接口全部在api/api.js这里面。
4、Admin 权限分配操作_拦截器_48
在mounted钩子函数内执行访问后端接口的方法
4、Admin 权限分配操作_端接_49
重新登陆前端。可以看到访问到了数据。
4、Admin 权限分配操作_asp.net core 2.2_50

输入res.data
4、Admin 权限分配操作_数据_51

4、Admin 权限分配操作_asp.net core 2.2_52

页面权限问题

4、Admin 权限分配操作_ico_53
添加上权限
4、Admin 权限分配操作_端接_54
基于角色的是这么写的。但是这么就写死了。
4、Admin 权限分配操作_数据_55

我们是基于策略的,都配置在数据库内了
4、Admin 权限分配操作_拦截器_56

4、Admin 权限分配操作_ico_57
前面的Policy可以省略
4、Admin 权限分配操作_asp.net core 2.2_58
权限统一走的策略授权
4、Admin 权限分配操作_数据_59
加上权限后,这里访问后端接口数据。提示是路由的拦截器
4、Admin 权限分配操作_拦截器_60

拦截器。request是请求的拦截器
4、Admin 权限分配操作_拦截器_61

增加权限

菜单默认带的是get方法。意思是我们把这个首页分配给当前角色的时候,它所定义的api也赋值给他了。
4、Admin 权限分配操作_拦截器_62
那么我们拉请求另外一个api。后算修改下delete的action
4、Admin 权限分配操作_asp.net core 2.2_63
4、Admin 权限分配操作_数据_64

4、Admin 权限分配操作_数据_65
removeDemos肯定是无权限的,因为没有配置。
4、Admin 权限分配操作_asp.net core 2.2_66
第一个请求是200,第二个请求是403错误
4、Admin 权限分配操作_拦截器_67


4、Admin 权限分配操作_端接_68
菜单管理,注意:删除不是一个页面。我们当做按钮来处理
4、Admin 权限分配操作_asp.net core 2.2_69

4、Admin 权限分配操作_端接_70
分配权限,这里有个删除
4、Admin 权限分配操作_数据_71

退出后台,重新登陆。再次访问
4、Admin 权限分配操作_拦截器_72

注意事项:一般是一个请求执行完成后,再去执行另外一个请求。
4、Admin 权限分配操作_数据_73

结束