- 博客(13)
- 资源 (5)
- 收藏
- 关注
原创 Controller 加了 [Authorize] 就万事大吉?(上)—— 一次代码 Review 揪出的越权隐患
因为 Token 是合法签发的,操作日志里看到的就是"某个真实用户删除了订单",很难第一时间判断这是不是一次越权攻击,还是业务上真的授权了这个人操作。Controller 里每新增一个 Action,如果没有强制约定,都有可能重复这个问题,风险不是一次性的,而是会随时间不断放大。这里的关键在于:这个 Token 是完全合法的,是系统自己签发的,不是伪造的。不需要 SQL 注入、不需要绕过加密算法,只需要一个合法的普通账号,就能执行管理员级别的操作,攻击门槛极低。同样的方式,退款审批接口。
2026-08-10 23:41:23
287
原创 从 .NET 8 升到 .NET 10,我的 Swagger JWT 认证代码“编译不过“了
把项目从 ASP.NET Core 8.0 升级到 10.0,同时把 `Swashbuckle.AspNetCore` 从 6.x/7.x 升级到 10.x 之后,原本在 .NET 8 下运行了很久、配置 Swagger JWT 认证的代码突然编译报错
2026-07-25 00:37:30
319
原创 一次代码评审引发的困惑:ASP.NET Core 里 Serilog 到底该怎么注册?
在 review 一个同事的 PR 时,我发现项目里 `Program.cs` 的日志注册方式,跟我自己常写的不一样。顺手翻了一下团队里另外几个仓库,发现至少存在三种"看起来都能跑"的写法。
2026-07-03 14:12:28
205
原创 Windows Docker Desktop 环境下 RabbitMQ 生产级部署完整指南
本文介绍了在Windows本地开发环境中使用Docker Desktop部署RabbitMQ的三种方案。首先说明了环境要求,包括操作系统版本、Docker Desktop配置和容器模式。然后对比了不同RabbitMQ镜像版本的适用场景,推荐使用rabbitmq:3.13-management-alpine镜像。接着详细讲解了三种部署方案:极简快速部署(测试用)、标准持久化部署(日常开发推荐)和挂载自定义配置文件(高级场景)。重点强调了Windows环境下配置文件的特殊注意事项,如编码格式、换行符等常见问题。
2026-06-26 23:08:29
336
原创 Windows Docker Desktop 环境下 RabbitMQ 生产级部署完整指南
本文介绍了在 Windows 环境下使用 Docker 部署 RabbitMQ 的三种方案。推荐采用 rabbitmq:3.13-management-alpine 镜像,包含可视化后台且体积小。方案一是快速测试部署,方案二是带持久化的开发推荐方案(固定节点名、数据持久化、自启策略),方案三是挂载自定义配置文件的高级部署方式。重点讲解了 Windows 特有的配置注意事项,包括 UTF-8 无 BOM 编码、LF 换行符等易错点。最后提供了验证方法,确保部署成功。三种方案可满足不同场景需求,简化本地开发环境
2026-06-26 10:17:56
323
原创 升级 .NET 10 不想等 Pomelo?试试 Microting.EntityFrameworkCore.MySql
摘要 本文针对希望尽快升级到.NET 10但Pomelo尚未支持EF Core 10的情况,提出了使用Microting.EntityFrameworkCore.MySql作为替代方案的解决方案。Microting是Pomelo的一个官方分支,专注于紧密跟随.NET发布周期,功能与API高度兼容,目前已支持.NET 10和EF Core 10。文章对比了两者在功能、版本支持和维护模式上的差异,并提供了详细的迁移指南,包括替换NuGet包、更新命名空间和验证兼容性等步骤。对于需要快速升级到最新.NET版本的项
2026-06-23 23:33:12
480
原创 .NET 10 OpenAPI UI 三剑客:Swashbuckle、NSwag 与 Scalar 实战对比
.NET 10 内置 OpenAPI 文档生成能力,使 Swashbuckle、NSwag、Scalar 等工具回归为纯粹的 UI 渲染器。本文通过一个最小演示项目对比了三者在 .NET 10 中的集成方式:都基于同一个 /openapi/v1.json 端点,但注册方式和 UI 特性各异。Swashbuckle 和 NSwag 采用中间件方式,提供传统 Swagger UI;而 Scalar 使用路由端点,带来现代化三栏布局和更好的交互体验。三者各有侧重:Swashbuckle 简单成熟,NSwag 功能
2026-06-22 22:43:47
391
原创 排坑日记:ASP.NET Core 中 “Required field is not provided“ 验证错误全记录
本文讨论了在ASP.NET Core 10.0 Web API开发中遇到的一个验证问题。当使用多个[FromRoute]参数时,非可空值类型int会触发[ApiController]的自动验证误判,错误提示"Required field is not provided"。通过将参数改为可空类型int?可以临时解决,但最佳方案是采用请求体DTO模式,将参数从路由移至JSON Body中。这种方案既符合RESTful规范,又能避免验证管道的边界问题,还能提供更友好的错误提示。最终通过定义InventoryDec
2026-06-18 17:18:48
224
原创 asp.net core webapi接入SqlSugar操作PostgreSQL:从零到一完整实战
本文详细介绍了在ASP.NET Core WebAPI项目中使用SqlSugarCore ORM框架连接和操作PostgreSQL数据库的全流程。主要内容包括: 环境准备:开发工具Rider、.NET 6+、PostgreSQL 12+和SqlSugarCore 5.1.4.214 项目创建:新建ASP.NET Core WebAPI项目并取消HTTPS配置 依赖安装:通过NuGet安装SqlSugarCore和Npgsql驱动 配置连接:在appsettings.json中设置PostgreSQL连接字符
2026-06-18 00:16:06
379
原创 排坑日记:SqlSugar 连接 PostgreSQL 报错 42P01: relation does not exist 的排查与修复
文章摘要 SqlSugar连接PostgreSQL时出现42P01报错(表不存在)的解决方案: 问题现象:调用API时服务端报错,日志显示"relation 'drugs' does not exist"。 根因分析: PostgreSQL大小写敏感特性:不加引号的标识符会被转为小写 SqlSugar生成SQL时表名/列名大小写与实际数据库不匹配 解决方案: 在SqlSugar配置中添加ConnMoreSettings 设置PgSqlIsAutoToLower等三个参数为true 经验总结: Postgre
2026-06-15 18:05:48
551
原创 修复打开或关闭Windows功能框显示空白问题的方法
修复打开或关闭Windows功能框显示空白问题的方法 关于打开或关闭Windows功能空白的问题,困扰了我好几天。在度娘上找了很久,几乎试过了度娘上找到的所有方法,都没有效果。最后突然想到国内既然没有找到方法,那就翻墙到国外去看看,果然发现了一些有价值的方法。真的感觉是神农尝百草呀,最后终于成功,下边是用谷歌翻译弄出来的解决步骤。解决打开或关闭Windows功能空白问题可以通过以下几个步骤来解
2026-06-15 18:02:48
14198
转载 GIS专业就业之职业态度——转:职场人必看 十句话让您在职场少奋斗30年
粟卫民 http://www.gisdev.cn/ http://blog.youkuaiyun.com/suen/ 日期:2012-4-1保留所有版权。如需转载,请联系作者,并在醒目位置注明出处今天是西方的愚人节,关于愚人节起源,有很多,包括古希腊、古罗马、法国、英国等。有的是嘲笑政治的,有的是嘲笑神灵的。反正不管怎么样,愚人节现在最大的作用也许是让人们在充满压力的世界有个放松的机会,
2018-01-16 15:57:09
521
原创 oracle游标数查询和修改
1、连接数据库C:\Users\Administrator>sqlplus sys/sys@orcl as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期五 1月 13 10:23:21 2017Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到:Oracl
2017-01-13 14:06:43
2268
【Windows系统管理】基于NSSM的EXE程序服务化封装:实现开机自启与进程守护的自动化运维工具应用
2026-06-17
视频监控基于海康威视SDK的NVR/DVR设备集成开发:网络摄像头管理系统设计与实现
2026-06-17
TortoiseSVN-1.8.11.26392-x64-svn-1.8.13.msi
2016-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅