惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
Lohrmann on Cybersecurity
aimingoo的专栏
aimingoo的专栏
V
V2EX
S
Security Affairs
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
IT之家
IT之家
J
Java Code Geeks
The Register - Security
The Register - Security
U
Unit 42
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Cisco Talos Blog
Cisco Talos Blog
Project Zero
Project Zero
S
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
博客园 - 司徒正美
V
Vulnerabilities – Threatpost
T
Tor Project blog
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
小众软件
小众软件
L
LangChain Blog
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
A
Arctic Wolf
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 叶小钗
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 最新话题
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta

程序员

V2EX 看到讨论"跨域"的帖子,那个她好像回来了 codex 今天真的是不稳定呀。 火山方舟 Coding Plan 慎买 刚问了大家 openclaw 和 hermes 在什么机器上面玩,求推荐一个机器 GPT-image-2 生成 AI 图片防伪有感 codex pro 5 小时限制已经严重缩水 逆天 Antigravity 动态 JSON 序列化对强类型语言很难吗? 自建了 GPT Coding Plan,遇到了定价问题,请教大家 大家都是在什么设备上玩 openclaw 以及 hermes 的呀? 软考还有一个月就考试了,你们学习了吗? 大伙用 AI 会考虑在 user scope 的 CLAUDE.md/AGENTS.md 里交代 AI 说中文吗 我发现程序员这个群体很大部分其实挺抠的 最近使用 cc 总会莫名其妙的返工, codex 不会 目前体验最好的远程 vibe 工具 想知道大佬们抓包遇到 ssl pinning 都是咋优雅的 解决的? - V2EX 工业软件的大佬们是怎么 vibe coding 的 - V2EX 最近 chrome 是不是有 bug 啊,一搜索就卡住 - V2EX 分布式异步系统在 vibe coding 下的困境 PHP Native AOT 编译器,支持将 PHP 代码编译为可执行文件,运算性能提高 150 倍 没想到 2026 年,还要浪费大量时间在跨域问题上 - V2EX DeepSeek V4 这周会出吗? 中转站正式试营 欢迎试用 不掺不假 小米 mimo 升级 v2.5,并且重置了额度 Jenkins, SCM 轮询完全不工作是啥问题啊 赛博斗蛐蛐, AI 模型的简单对比(白嫖版) 使用中转站要擦亮眼睛!不说别的,倍率计算 充值好乱。 买了火山的 Coding Plan 测试得出计费模式 给我的 AI 生成了简历和状态卡, 大家帮忙看下 Ta 能找到啥样的 腾讯云太不要脸了, token plan 上 glm5.1 和 minimax-m2.7,但是 coding plan 不上 - V2EX 目前自建梯子最强的 anytls 协议不是不不更新了? 刚发现 WSL2 可以通过 virtiofs 访问 NTFS 分区, IO 速度明显提升 v2board 还是其它面板更适合小团伙使用? 现在 AI 来了,如果有天不需要程序员? gpt-image-2 太顶了 你们 vibe 会让模型先输出方案来审核吗? GLM Coding Plan 调整老套餐并停止自动续订,受影响用户获赠 2 个月新套餐权益 为了浏览在线文档的时候能自定义高亮, Vibe 了一个网页高亮标记的工具 从 2 月开始用 Opus 4.6,到这几天切到 4.7,一些感悟和困惑 Github Copilot 停售之后还能买什么 收集了一下市面上常见的 Token Plan,可以给到大家一点参考 这个生图太牛了 中国的算力缺口这么大嘛?看到 2025 华为昇腾出货 81 万块,又看到各家 coding plan 不是停售就是限流 做 OPC 太难了,天天焦虑 阿里云 Coding Plan 增加动态限流,频繁暂停无法使用 马斯克 600 亿美元收购 Cursor codex 开始灰度 GPT 5.5 了 大家是如何使用 codex gpt-image-2 生图确实很顶啊,附带几张生成效果。 codex 的风评似乎在超过 Claude code? 智谱 GLM 宣布停止续订无周限额的老套餐 如何实现自我进化的 AI 的 Skills? 智谱(GLM)果然学习了阿里, 强制关闭了老用户套餐的自动续费 各位公司有除了智能客服外真正落地的 AI 应用吗? 热烈欢迎火山 Coding Plan 加入 GLM5.1 Kimi2.6 MiniMax2.7 阵容 请教大佬: claude API token 太烧钱了, minmax 还要兑换码,有没有合适的中转方案 开发一个面向普通用户(非程序员)的 Agent 软件,支持 skills、定时任务、对话功能,主要客户群体使用 Windows。感觉像是一个带前端的 Hermes,但是 Hermes 在 Windows 下运行不太友好,不适合非开发人员。 grok XAI 开始限制免费用户访问次数了吗? openspec 怎么配合 superpowers 使用? 阿里云的 coding plan 莫名奇妙被冻结了 程序员如何学习 ui 审美 开源了一个 AI Agent 认证工具 sig —— 让 AI Agent 安全访问外部系统 Vibe Coding 时代,该如何快速搭建一个 CRUD 平台? 感觉大多数的 coding plan 都是被龙虾薅死的。 有没有一起拼中转站的呀,找到一个中转站用了段时间感觉比较靠谱 搭个 AI 中转玩玩 Zeabur + Neon 50 块以内跑通 Coinepay:一张不能用的卡,扣了我 5 个月月费 Gemini in Chrome 支持日本了,为什么我的不生效? 跳板机/内网穿透方案,如何降低远程访问校内服务器延时? 现在有没有什么好的 AI 图片生成 3D 模型的方案? 关于科研 ai 作图 为什么现在 AI SDK 默认不支持异步? 建议 V2EX 加入一个 Ai App 或者 Vibe Coding 模块,把一堆 Ai 生成的产品都丢进去。 如果没用 coding plan 套餐了,再继续自费上班是不是就太傻了 AI 太烧钱了,有什么好的大模型组合方案? 阿里云百炼这波开始割韭菜了,下架 coding plan,改头换面 token plan 最新,腾讯云和阿里云 coding plan 购买页面均已下架,换成了 token plan 阿里云 CodingPlan 彻底没了,新上了 TokenPlan 大家看到 antigravity 那个配额监视器的广告了没? 真心发问,想学后端需要学啥? AI-Powered Log Analysis Tool - Pangu RCA 想自己写一个 code agent 玩玩,有什么开源项目可以参考吗? 腾讯云 Coding Plan 下架了 现在还有哪一个国产 Coding Plan 能买到吗? 106 行业短信签名申请新规范出台, 5 月 1 日起生效 最近上线了一个开发了半年的 shopify SAAS AI 就像那渣男渣女,平时哄着你温柔小意,关键时刻就坑你一波大的 大家在开发智能体时,都是怎么写系统提示词的? 现在大模型国内外直连越来越难买或拼车了,想试试中转站,大家有没什么推荐呀 一个人写了大半年 Android App,聊聊过程中的一些取舍,第二篇 智谱 coding plan 的使用 token 限制是多少? cli-proxy-api + 中转站领的鸡蛋 = 大模型免费用是否可行? gpt coding plan 一天试用(GPT 5.3codex 和 gpt 5.4) 大家用 AI 是订阅制多还是 API 按量付费多? 我用 AI 写了一个游戏,我发现我不想看代码,也看不懂代码了 AI 代码后面怎么维护,心智负担太大了 中年人爱上 AI 编程,就像爱上钓鱼 每月 AI 支出都超过生活费了 1000 行 rust 实现一个类似于 pytorch 的轻量级自动微分库
做了好几个后台系统之后,我把这套多租户中后台底座开源了(XiHan.BasicApp 基于.NET 10 + Vue 3) - V2EX
zhaifanhua · 2026-06-27 · via 程序员

如果你也写过后台管理系统,大概率经历过这几件事:

  • 每开一个新项目,登录、用户、角色、菜单、权限又从零搭一遍,复制粘贴改改改;
  • 权限只做到了"能不能看这个菜单",等真到了"这个人只能看自己部门的数据""手机号要打码",就开始一个补丁接一个补丁;
  • 想做多租户,结果发现登录、数据隔离、套餐、计费这些东西牵一发动全身,最后做成了一个"伪多租户"。

我也一样。前前后后做了几个中后台,每次都在重复造轮子,每次都不太满意。于是这两年,我把反复踩过的坑,沉淀成了一套自己用着顺手的底座 —— XiHan.BasicApp,现在把它开源了。

登录

它是什么

一句话:一套基于 .NET 10 + Vue 3 的企业级多租户中后台内核

后端是 DDD 分层 + CQRS ,跑在我自研的底层框架 XiHan.Framework 上;前端是 Vue 3.5 + TypeScript + Naive UI 。

它不是又一个 xxx-admin 的套壳。多租户、RBAC + ABAC 、字段级安全这些通常被"做个样子"的东西,我是当成核心来做的——而且它现在就在真实环境里跑着,不是一个 demo 。

几个我自己最满意的设计

光说功能多没意思,我更想聊聊几个"为什么这么做"的决定。

1. 登录后再选租户,而不是登录前

大多数多租户系统让你先选租户、再登录,体验很别扭。我把邮箱作为全平台唯一身份,登录后由系统按你的归属智能落点:平台管理员进控制台、单租户用户直接进工作台、多租户成员进租户选择页,头像下拉里随时切换租户。超级管理员还能以"平台态"切进任意租户代为管理。

租户选择

2. 权限一直做到了"字段级"

  • RBAC 解决"能不能进这个页面、点这个按钮";
  • ABAC 解决"能看哪些数据"——全部 / 本部门 / 本部门及子部门 / 仅本人,越权请求在服务端直接拦掉;
  • FLS (字段级安全)解决"敏感字段能不能看、要不要脱敏"——手机号、邮箱该打码的打码,没权限的字段根本不下发,也导不出去。

三层叠在一起,权限才算做完整。这也是我觉得很多"后台模板"做得最敷衍的地方,也是正式上线后,openapi 、接口最容易引发安全问题的隐患。

3. 写应用服务 = 写接口,没有 Controller

后端的应用服务打个 [DynamicApi] 就直接暴露成 REST 接口了,零 Controller 样板,Scalar 文档自动生成。少写一半的胶水代码。

4. 菜单只有一个事实源

菜单、路由、组件路径、权限码、国际化键,全在后端一个 PageRegistry 里登记。前后端契约不会漂,再也不用"前端配一遍菜单、后端配一遍权限,两边对不上"。

5. 前端的列表页是"配置"出来的

全站二十多个列表页,几乎没有重复的 Search / Table 代码——我做了一套 Schema 驱动的列表框架:搜索、表格、导出都用配置生成,列设置、高级搜索、个人视图、行悬停速览、树形、列宽拖拽、导入导出开箱即用。而且权限 / 租户 / 偏好全程感知,你的列设置和搜索习惯还会同步到云端,多端一致。

用户管理

6. 全栈代码生成

连上数据库,选一张表,实体、DTO 、仓储、服务、接口、前端页面一键生成,Scriban 模板可自定义。新增一个 CRUD 模块,从几小时变成几分钟。

前端我也没敷衍

后台的"前端"经常被当成附属品,但我在这上面花的心思不比后端少。

偏好中心:亮 / 暗主题、主题色、布局风格、紧凑度都能调;更关键的是,你的偏好、列设置、搜索习惯会同步到云端——换台电脑登录,还是你熟悉的样子。

偏好设置

  • 灵动岛:借了点手机的灵感,全局操作反馈、异步耗时任务进度都收敛到顶部一个小岛里,不再满屏弹 toast ;
  • 顺手的细节:多标签页、收藏夹、命令面板式全局搜索(键盘呼出,直达任意页面与操作)、超多的过渡动画——这些"小东西"才是每天用起来顺不顺手的关键;
  • 亮 / 暗双主题是认真做的,不是给 body 加个 class 了事,每个页面、每个组件都对过:

用户管理(暗色)

移动端不是 PC 页面的缩小版

很多后台的"移动端"就是把 PC 页面硬塞进小屏。我是按移动端交互重新做的——登录、工作台、菜单、命令面板、消息中心,体验接近原生 App:

安全和审计,是我最较真的部分

做 B2B 系统,"谁、在什么时候、做了什么"必须查得到。系统内置六类日志——访问 / API / 操作 / 异常 / 登录 / 实体变更——各自独立写入;请求里的密码、令牌、密钥、身份证这些落库前自动脱敏;实体变更精确到字段,还能区分新增 / 修改 / 删除 / 恢复。

操作日志

配合前面说的字段级安全,越权访问、敏感数据泄露这些上线后最容易出事的点,从一开始就被框住了。

还有这些

剩下的功能我快速过一下:

  • 完整认证:JWT 双令牌、邮箱 / 短信验证码登录、OAuth2 ( GitHub / Google / QQ ,其他的可自行实现,底层都抽象出来了)、2FA 、多端登录控制;
  • 消息中心:系统公告 / 安全 / 业务 / 待办 / 紧急五类,顶部横幅、登录弹窗、强制阅读、按角色部门定向,SignalR 实时推送;
  • 网关能力:灰度发布(百分比 / 白名单 / 租户 / 请求头)、限流熔断、请求追踪、OpenAPI 签名加密;
  • 系统监控:CPU / 内存 / 磁盘 / 网络 / 服务状态一屏掌握;
  • 其它:文件多存储(本地 / S3 / OSS / COS / MinIO )、定时任务、审核工作流、富文本 / Markdown / Cron / JSON 编辑器、中英国际化……

服务监控

技术栈 & 谁适合用

后端:.NET 10 / SqlSugar ( PostgreSQL / MySQL )/ Redis / SignalR / Serilog 前端:Vue 3.5 / TypeScript / Vite / Naive UI / Pinia / Tailwind CSS / Tiptap

代码本身我也尽量写得能看:科学的框架结构,清晰的代码注释,直观的树形依赖——clone 下来不至于一脸懵,能比较快地理清它是怎么组织起来的。

代码结构

系统里还自带了一个"关于"页,把后端和前端用到的每一个开源依赖都列了出来——既是对这些项目的致敬,也方便你审一遍依赖再决定用不用:

关于

它可能适合你,如果你:

  • 想要一套"权限和多租户是真做了"的中后台起步模板,而不是又一个换皮的 admin ;
  • 在学 .NET + Vue 全栈,想看 DDD / CQRS 、动态 API 、RBAC + ABAC 怎么落地;
  • 在做 B2B SaaS ,需要租户隔离 + 套餐版本 + 权限白名单这套东西。

跑起来很简单

# 后端
git clone https://github.com/XiHanFun/XiHan.BasicApp.git
cd XiHan.BasicApp/backend
dotnet run --project src/main/XiHan.BasicApp.WebHost --launch-profile Development

# 前端(另开一个终端)
cd ../frontend
pnpm install && pnpm dev

首次启动会自动建表 + 初始化种子数据,默认管理员账号 superadmin。后端 API 文档在 http://127.0.0.1:9708/scalar

写在最后

这个项目还会持续打磨,它并不完美——短信网关、支付还在路上,有些模块也还在重构。但它是我真刀真枪在用的东西,不是写给人看的样板。

如果它能帮你少造一个轮子,或者给你一点全栈实践的参考,我就很满足了。

如果想看某个模块的实现细节——比如多租户怎么隔离、字段级安全怎么做的、代码生成怎么写的——评论区告诉我,我可以单独拆一篇出来。