【asp.net core】动态映射mvc路由-编程思维

ASP.NET Core 中的几大功能模块(Razor Pages、MVC、SignalR/Blazor、Mini-API 等等)都以终结点(End Point)的方式公开。在HTTP管道上调用时,其扩展方法基本是以 Map 开头,如 MapControllers、MapBlazorHub。 对于 MVC 应用,常用的是静态路由匹配方式,即调用以下方法: MapControllers MapC

【asp.net core】用配置文件来设置授权角色-编程思维

在开始之前,老周先祝各个次元的伙伴们新春快乐、生活愉快、万事如意。 在上一篇水文中,老周介绍了角色授权的一些内容。本篇咱们来聊一个比较实际的问题——把用于授权的角色名称放到外部配置,不要硬编码,以方便后期修改。 由于要配置的东西比较简单,咱们并不需要存在数据库,而是用 JSON 文件配置就可以了。将授权策略和角色列表关联起来。比如,老周这里有个 authorRoles.json 文件,它的内容如

.netcore下基于freeredis实现的redis6.0客户端缓存之缓存键条件优雅过滤-编程思维

前言 众所周知内存缓存(MemoryCache)数据是从内存中获取,性能表现上是最优的,但是内存缓存有一个缺点就是不支持分布式,数据在各个部署节点上各存一份,每份缓存的过期时间不一致,会导致幻读等各种问题,所以我们实现分布式缓存通常会用上Redis 但如果在高并发的情况下读取Redis的缓存,会进行频繁的网络I/O,假如有一些不经常变动的热点缓存,这不就会白白浪费了带宽,并且读到数据以后可能还需

【asp.net core】按用户角色授权-编程思维

上次老周和大伙伴们分享了有关按用户Level授权的技巧,本文咱们聊聊以用户角色来授权的事。 按用户角色授权其实更好弄,毕竟这个功能是内部集成的,多数场景下我们不需要扩展,不用自己写处理代码。从功能语义上说,授权分为按角色授权和按策略授权,而从代码本质上说,角色权授其实是包含在策略授权内的。怎么说呢?往下看。 角色授权主要依靠 RolesAuthorizationRequirement 类,来看一

从零实操基于wsl2 docker部署asp.net core项目-编程思维

前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Windows10开始已经有WSL、WSL2 去年在笔记本上捣鼓过WSL2,但也只是打开安装完后打了下几行命令尝个鲜,没有进行过后续跟开发有关的操作 前两天把家里电脑系统升级到Windows 11,新系统感

【asp.net core】按用户等级授权-编程思维

验证和授权是两个独立但又存在联系的过程。验证是检查访问者的合法性,授权是校验访问者有没有权限查看资源。它们之间的联系——先验证再授权。 贯穿这两过程的是叫 Claim 的东东,可以叫它“声明”。没什么神秘的,就是由两个字符串组成的对象,一曰 type,一曰 value。type 和 value 有着映射关系,类似字典结构的 key 和 value。Claim 用来收集用户相关信息,比如 Use

数据库主键分案-编程思维

一.数据库自带的自增主键   在传统单体数据库中,并且并发量不高的情况下,可以使用数据库自带的自增主键。但是它不能保持连续递增,只保证单调递增,也就是说自增主键值可能是:1,2,3,5 没有自增主键值4,这可能是因为事务回滚。   优点:     简单,代码方便,性能可以接受。数字ID天然排序,对分页或者需要排序的结果很有帮助。   缺点:     分布式数据库的分库分表的时候会有麻烦,假设有两

【asp.net core】mvc操作方法如何绑定stream类型的参数-编程思维

咱们都知道,MVC在输入/输出中都需要模型绑定。因为HTTP请求发送的都是文本,为了使其能变成各种.NET 类型,于是在填充参数值之前需 ModelBinder 的参与,以将文本转换为 .NET 类型。 尽管 ASP.NET Core 已内置基础类型和复杂类型的各种 Binder,但有些数据还是不能处理的。比如老周下面要说的情况。 --------------------------------

乘风破浪,遇见最佳跨平台跨终端框架.net core/.net生态-编程思维

什么是泛型主机 泛型主机(Host),又名通用主机,是封装应用资源和生存期功能的对象。 一个对象中包含所有应用的相互依赖资源的主要原因是生存期管理:控制应用启动和正常关闭。 其中包括: 依赖关系注入(DI) 日志记录(Logging) 应用配置(Configuration) 应用关闭 主机服务实现(IHostedService) 启动 当泛型主机启动时,它将对在托管服务的服务容器集合中注册

【asp.net core】mvc控制器的各种自定义:iactionhttpmethodprovider 接口_东邪独孤-编程思维

IActionHttpMethodProvider 接口的结构很简单,实现该接口只要实现一个属性即可——HttpMethods。该属性是一个字符串序列。 这啥意思呢?这个字符串序列代表的就是受支持的 HTTP 请求方式。比如,如果此属性返回 GET POST,那么被修饰的对象既支持 HTTP-GET 请求,也支持 HTTP-POST 请求。咱们在写 Web API 时最熟悉的这几个特性类就是实现

asp.net core mvc的razor视图渲染中文乱码的问题_天马3798-编程思维

一、ASP.NET Core MVC的Razor视图渲染中文乱码的问题 Asp.Net Core 默认视图渲染,默认中文字符使用了Unicode编码的中文字,直接输出。       解决方案1: 启动服务配置ConfigureServices,增加代码如下: //配置视图渲染支持中文 services.Configure<WebEncoderOptions

asp.net core 装x利器signalr:电子画板_暗夜余晖-编程思维

电子画板开发需求 教师端需求:   教师登录后能创建房间(教室) 学生加入房间后有通知提醒 教师能够解散房间 基本的画板功能   学生端需求: 能够切换不同在线的房间  能够收到新建房间的通知 能够收到房间解散的通知 基本的画板同步功能 本文原文地址:https://www.limitcode.com/detail/5c45ca572d18e503f036

identityserver4实战:持久化 client_暗夜余晖-编程思维

前言 在前几篇的学习中,我们定义的四类 Client 都是存储在内存中的,通过 AddInMemoryClients(Startup.GetClients()) 的方式注入到 IDS4的服务中。本篇我们学习如何使用数据库或其他持久化方法存储和读取 Client 。 自定义 ClientStore 在  MicroShell.IdentityServer4.Server 项目新建 Customer

identityserver4实战:token 中返回用户属性_暗夜余晖-编程思维

前言 在前几篇的学习中,生成的 Token 中只有 sub 这一个用户属性,其他的 username、email、phone等用户属性均没有包含在内。在实际项目中又常常需要从 token 中取得 用户的 sex、head 等属性,本篇笔者将介绍一种添加自定义用户属性的方法,供笔友参考。   IProfileService ids 4里面定义了一个IProfileService的接口用来获取用户的

identityserver4实战:自定义用户名和密码校验_暗夜余晖-编程思维

前言 前几篇中我们使用 用户密码模式 生成的token所使用的用户全部都是模拟的测试用户,通过 AddTestUsers(IdentityServerHost.Quickstart.UI.TestUsers.Users) 方式注入到服务中的,实际项目中用户数据都是从数据库而来,在编译期是不知道都有哪些用户的。本篇笔者介绍如何通过数据库校验用户名和密码的合法性。 IResourceOwnerPas

篇(19)-asp.net core 入门实战-权限管理之整理菜单导航控制显示(partial view和component view)_荣景智工-编程思维

入门实战-权限管理之整理菜单导航控制显示 这系列的教程最开始就是从一个菜单功能讲起的,最后也在此功能上结束。导航菜单现在都是静态的,在默认的_Layout.cshtml文件中,它的静态代码结构是这样的: <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-controller="Manager

篇(20)-asp.net core入门实战-完结之一期阶段总结_荣景智工-编程思维

入门实战-完结之一期阶段总结 用了几天的功夫,编写和演练的这个Asp.Net Core简单入门的教程已经讲完,下一期可以将完善其功能,将UI功能也给其套上,至少可以达到商用的目的。 简单做个总结: Asp.Net Core既有Razor的模式,也有MVC的模式,用MVC可能更加普遍一些; 学习入门,先在一个项目中演练,熟练后,再学分层结构。 EF的方式做项目,简单的还可以,复杂的数据模型业务,