• 2022年9月13日

.Net6后台用户权限控制模块开发方案

用户权限控制系统是B/S架构管理系统的关键模块,网上有多种方案,本文将分享一个相对比较简单的方案。 后台用户权限包含: 1、菜单权限: 1.1 菜单加载:后台加载菜单时,只加载分配给用户的菜单 1.2 页面加载:只能进入授权菜单对应的url页面 2、接口权限: 2.1 API调用权限:view页面只能调用授权api 基于此,我们将通过Microsoft.AspNetCore.Mvc.Filters的IAuthorizationFilter接口,配合Mysql数据库实现该方案。 数据库设计: 类型 备注 id 自增 username varchar(32) 用户名 password varchar(64) 密码 role_id int 用户表 类型 备注 id 自增 name varchar(32) 菜单名称 path varchar(100) view地址 菜单表 类型 备注 id 自增 name varchar(32) 组名称 menu_list text 菜单列表 api_list text 接口列表 用户组 类型 备注 id 自增 name varchar(32) 接口名称 path varchar(100) 接口地址 接口表 关键代码: 代码中涉及到数据库的读写就不详细写了,使用的是sqlsugar,各位根据自己情况修改下即可! 至此,基础的权限控制关键已完成,只需要编写相应的后台页面即可实现通过后台设定用户组的菜单权限、接口权限等。

详细内容

阿里云Serverless之函数计算(FC)产品部署.NET6记录

最近开发.NET 6 WebApi,因为使用频率不高,单独开设服务器并不划算,想起阿里云有个Serverless函数计算服务,决定尝试下是否可以降低部署成本。 产品链接:阿里云函数计算(FC) .NET 6项目概述: 开发语言:C# 开发框架:.NET 6 WebApi(MVC) 数据库:Mysql 第三方SDK:AliyunSDK 项目已开发完成且编译发布,获得包含HelloApi.dll等系列文件。 上线流程: 一、项目文件中的HelloApi.dll直接Ctrl+c再Ctrl+v,然后重命名复制出来的文件未HelloApi,将所有文件压缩成zip压缩包。 二、开通阿里云函数计算服务(具体通过上面的产品链接进入自行开通)并进入控制台 三、进入服务及函数页面,创建服务 四、进入新建的服务,创建函数,填写相关设置后点创建。 五、进入新创建的函数,点测试函数,看是否预期的结果即可完成。 主要遇到的问题点: 1、端口问题 由于阿里云函数计算监听端口默认为9000,在编译.NET6项目时,需要在program.cs中设定监听端口,例如本例的代码: 2、域名问题 阿里云函数计算是可以绑定自己的域名并且可以设定SSL,具体操作如下: 完成以上步骤后,做好相应解析即可通过域名访问到你刚创建的函数计算项目。 通过本次实践可以发现,.net部署又多了个新方案,不需要再独立开设服务器减少不必要的成本。我们创建函数计算时不需要考虑服务器配置、带宽,该服务的计费方式提供了一定量的免费额度,低频应用除了支付出流量的费用外几乎不需要成本。

详细内容

.Net开发Senparc在Program.cs配置 app.UseSenparcWeixin错误

var registerService = app.UseSenparcWeixin 该行代码显示UseSenparcWeixin有错误,只需要安装Senparc.Weixin.AspNet包即可

详细内容

.Net WebApi中Action参数设定默认值,调用未传参数返回400错误提示”the * field is required”

之前习惯了.Net Web(MVC模式)的Action方法中给参数设定默认值,这次一样给定了默认值,例如: 然而调用时,400错误,提示: 问度娘都没有明确的答案,突发奇想修改为: 如此定义下来,标识参数也可以是null值,因此调用时未传参数相当于参数获取到了个null值,再调试问题解决。

详细内容

.Net(C#)的Json解析之System.Text.Json

获取到文本Json内容,使用 JsonDocument.Parse转换成JsonElement对象,通过GetProperty(“节点名”)取值。 比如有Json内容如下: 我们要解析可使用如下代码 这样子使用System.Text.Json就不用NewtonJson来解析Json内容了

详细内容

.Net6微信小程序Session解决方案

微信小程序不保存cookie,而session是依托cookie,因此开发的 微信小程序api无法直接使用session。 解决方案: 在微信小程序发送请求给服务器端,服务器端处理后返回给微信小程序的response的header中会包含有Set-Cookie内容,顾名思义是要客户端保存这部分的内容作为cookie值,因此把这个部分内容保存到storage或者全局参数内,当微信小程序再次向服务器端发送请求时,在header里带上Cookie内容,其值就是前面保存的数据即可。 服务器端基本无需修改,只需要添加如下2个代码: 保存Set-Cookie内容(UniApp): 请求时: 相对来说,把http请求抽象成一个工具类,就不需要每次请求时都要设置或者保存这个数据。

详细内容

.NET CORE使用JWT用户验证方案

JwtHelper.cs Program.cs appsettings.json 如何使用? 客户端接收到token,保存到本地cookie或者local storage,请求时,向请求头添加X-Token字段,将服务端保存的token传递回去

详细内容

.Net 6 Web项目Program.cs读取appsettings.json设置参数

新建了个.NET 6的Web项目只有Program.cs文件,需要在Program.cs读取appsettings.json里面的配置。 appsettings.json内容如下: Program.cs代码如下:

详细内容

Nginx下的.Net Core获取真实客户端IP

由于Nginx下通过代理映射道.Net Core的端口,所以直接使用 Connection.RemoteIpAddress.MapToIPv4()只能获取道127.0.0.1 要获取客户端真实IP,需要在Startup.cs或者Program.cs里面设置: 其中需要引用命名空间: using Microsoft.AspNetCore.HttpOverrides;

详细内容

easyweb使用tableX导出数据

使用的基于layui开发的easyweb框架做后端,需要将表格的所有数据都导出,layui的table自带的导出按钮只能导出表格当前页的数据,如果需要导出全部数据可以使用tableX: tableX.exportDataX({ cols: insTb.config.cols, //数据表格的列作为excel表格列 data: ‘admin/export’, //数据接口url option: { where: where //这里where应该是数据接口需要的参数,例如 classid之类的 }, fileName: ‘防伪码’ //excel的文件名 });

详细内容