从零开始Blazor Server(12)--编辑菜单】的更多相关文章

上个星期有点事,导致没法及时更新.现在我们继续更我们的从零开始系列. 这个系列也快要结束了,目前规划再有2-3篇,就结束了. 今天我们来说编辑菜单的问题,说实话菜单这种东西,你不更新代码加个页面,单独加个菜单没啥意义.除非你要跳转到其他的网站去. 但是呢,你没有这玩意感觉又不太完整,就加上吧. 菜单管理里,我们主要来说一下table的树形的处理. 先上代码: <Table TItem="MenuEntity" IsBordered="true" ShowAdd…
这篇干啥 这篇文章主要是把前面的一些东西稍微调整一下,使其更适合后面的内容. 主要是两个事,一个是把原来的PermissionEntity直接变成MenuEntity,直接让最后一级是菜单,这样后面就简单很多. 另外增加一些默认的菜单为后面的文章做准备. 另外就是调整一下Pages里面的目录结构,让我们不用每个页面都去加@attribute [Authorize] 处理目录结构 之前的内容里,我们最后还是用了Furion自带的方法来处理成策略授权了,所以我们正常的话需要每个页面都加上@attri…
例图 目前的样式是这样的: 其中角色在一个table里,然后可以增删改查,并且可以给指定的用户分配权限. 创建文件 首先我们在Pages/Admin目录下新建一个Role.razor.因为我们的Admin目录已经使用了_Import来给整个文件夹添加了授权特性,所以我们就无需再次添加了. 添加table 这里添加一个table来显示所有的角色. <Table TItem="RoleEntity" IsBordered="true" ShowAddButton=…
用户编辑和角色编辑几乎一模一样,这里先直接贴代码. @page "/user" @using BlazorLearn.Entity @using Furion.DataEncryption <Table TItem="UserEntity" IsBordered="true" ShowAddButton="true" ShowToolbar="true" ShowExtendButtons="…
认证方式简述 Blazor Server微软官方还是推荐直接使用Cookie授权,因为本来Blazor Server就是前后端不分离的.不存在Cookie跨域等一系列问题. 只要不是使用SSO之类的统一登录方式,建议直接使用Cookie作为认证方式就行,简单方便. 添加Cookie认证 Blazor添加Cookie认证的方式跟MVC没什么区别,也是在Program.cs里添加对应的认证中间件. 添加Cookie认证方式 builder.Services.AddAuthentication(Coo…
我们用了14篇文章,基本上把一个后台管理系统需要的UI部分都说的差不多了.所以这套文章也该到了结束的时候了. 这里面有很多问题,比如我们直接使用UI来拉数据库信息而没有使用service,再比如我们大量的用了同步,即使使用Task.FormResult也不用异步处理,再比如整个项目里没有任何缓存,所有的操作都直接处理数据库,再再比如半残废的权限系统. 所以这套东西我不希望有人真的直接拿过来用,正如我们题目说的那样,是从零开始blazor,不是从零开始后台管理系统. 这套文章的着眼点在于UI部分.…
项目介绍 本次项目准备搭建一个使用Furion框架,Blazor的UI使用BootstrapBlazor.数据库ORM使用Freesql的后台管理系统. 目前的规划是实现简单的注册,登录.增加管理员跟普通用户两种权限,不会实现复杂的权限管理,但是也不准备用默认的那套,自己实现一个简单的架子把. 然后实现一下后台对用户的删除,禁用. 大概就这个逻辑,后面想写别的再说. 创建项目 创建项目我们不使用任何模板,直接建立官方模板的blazor项目来做,这样应该是最通用的. 首先我们建立一个Blazor…
写这个的原因 现在BootstrapBlazor处于大更新时期,Menu组件要改为泛型模式. 本来我们的这一篇应该是把Layout改了,但是改Layout肯定要涉及到菜单,如果现在写了呢,就进入一个发布就过时的状态,就很尴尬,所以后面的就稍微拖一拖. 加上昨天有人说我用OnNavigateAsync违反单一性原则,要用策略,所以这里我们说下策略怎么做. 添加策略相关的代码 首先我们要有一个实现IAuthorizationRequirement接口的类,这个类没有什么特别的要求,我们就写一个空类来…
说明 上一篇文章中我们添加了Cookie授权,可以跳转到登录页了.但是并没有完成登录,今天我们来完成它. 我们添加Cookie授权的时候也说了,这套跟MVC一模一样,所以我们登录也是跟MVC一模一样.有个小区别是必须使用MVC去登录,Blazor本身是登录不了的. 添加Controller支持 在Program.cs中添加: builder.Services.AddControllers().AddInject(); 这里的.AddInject()是添加Furion的支持,我们后面要用到的动态C…
目前我们的MainLayout还是默认的,这里我们需要修改为BootstrapBlazor的Layout,并且处理一下菜单. 修改MainLayout BootstrapBlazor已经自带了一个Layout组件,这个组件里常用功能已经很全了,所以我们直接使用这个组件即可. <Layout SideWidth="0" IsPage="true" IsFullSide="true" IsFixedHeader="true"…