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

推荐订阅源

aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
S
SegmentFault 最新的问题
Project Zero
Project Zero
D
DataBreaches.Net
I
InfoQ
L
Lohrmann on Cybersecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
The Register - Security
The Register - Security
Recorded Future
Recorded Future
Vercel News
Vercel News
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
I
Intezer
The Hacker News
The Hacker News
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
Help Net Security
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Scott Helme
Scott Helme
T
Threatpost
爱范儿
爱范儿
N
Netflix TechBlog - Medium
D
Docker
云风的 BLOG
云风的 BLOG
C
Cisco Blogs
K
Kaspersky official blog
H
Help Net Security
S
Secure Thoughts
T
Threat Research - Cisco Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security @ Cisco Blogs
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
G
Google Developers Blog
Forbes - Security
Forbes - Security
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
B
Blog
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
P
Privacy International News Feed
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux - V2EX [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 新电脑 brew install node 之后,一个小设置可以提升对供应链投毒的防御 - V2EX GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? - V2EX 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? - V2EX gemini cli 貌似挂了,一直返回 403 - V2EX 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 - V2EX 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 - V2EX 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 - V2EX 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 - V2EX 只有我一个人觉得 codex 不好用? 做了个 AI + 真人专家监督的广告投放平台 Auxora, 7 个品牌跑出 6x ROAS 如何走出至亲的离世 Claude Web 端貌似 claude-opus-4-7 偷偷上了? 现在 Apple 开发者帳號應該是用哪个地区会更好? - V2EX 用回测筛选因子的一点经验分享 给女儿 vibe 了一个故事类的 app,做完发现,这类应用似乎上线难度极大? - V2EX 手机格式化 bitget 钱包没了,里面开通的银行卡还有机会拿到吗 - V2EX [送码] TransVoice - 我的第一款 App 上架啦!实时转写+翻译+字幕,会议听课好助手! PictureHub 高清摄影作品的画廊 Planet 的第一个使用 macOS 26 SDK 构建的 Insider 版本 20260416-1 - V2EX 成都二手房是不是在涨价,有点坐不住了 - V2EX claude 生态(skill mcp plugin)等 Studio Display XDR VESA 适配器脱落 有在用印度区 applestore 的大哥嘛,请教一下礼品卡去哪里买呢 - V2EX 我好像知道京东家政爆火的原因了 - V2EX 薅了公司的 a 家 api key,用机场 ip 做代理容易被封吗 如何在初期就识别 HR 在刷 KPI,没打算招你? [分享]精心打造一个 AI 编程知识库(算法/设计模式/提示词/Skills),助力程序员转型 港版 iPhone 在国内支持联通 5GA 吗?在广东用 想办港卡 AI 对 it 行业影响太大了 我做了个把照片变成 iOS 小组件贴纸的 App ChatGPT Pro 5x 套餐 量真的很足! I have found a method to directly generate advertising video materials using scripts 在小城市开个店,给人写软件,有前途吗 chrome 最新的 147 版直接卡爆炸了 - V2EX 为什么厂家不在 skill/mcp 这类的工具中塞广告呢?这样不是可以大赚嘛? minimax 真是脸都不要了,工作日下午 14:00 定时开启 529,脸都不要了。训练模型居然占用用户使用时间 外资非核心部门 vs 另一家外资的核心部门,该跳吗? iTad 标签 扩展 加小动作 ? - V2EX 去年 H200 能买,不让买是代替快出来了? - V2EX AI 赛事通 - 2026 年 4 月中国区新增 AI 竞赛和黑客松汇总 - V2EX V2EX › 登录 现在安卓开发都在做啥 - V2EX 浏览器插件 沉浸式翻译 是不支持自定义模型了吗? - V2EX Codex 里的 GPT5.4 也能降智?上午让它改两个问题,改了一个小时了, plus 额度用了一半了还是没改好,和前几天用的体感完全不一样。要它改的问题也不复杂。服了。 目前有使用 claude code 的收到人脸认证的吗 - V2EX 分享一个自己做的 Nginx 管理工具,实时请求动态预览!(无奈市面上实在找不到好用的,自己撸了个) - V2EX claude code 崩了么? 今天在反重力上用 claude 一点都不丝滑,有同样的感受吗? opencode 消息周知插件 今天 claude opus 和前两天比,质的飞跃 - V2EX 999 包月价? - V2EX 一个版本, 50 项更新:我们几乎重做了整个播放页 本地大模型多大显存够用? GOGDNS 一款简易的私人 DNS 服务器 - V2EX API key (GLM) 怎么使用 claude code desktop ? Claude 这样订阅有问题吗 - V2EX 帮我爸找回了一篇赛博兰亭集序 求推荐稳定、高性价比使用 Claude Opus 4.6 的渠道/平台 搞个云端 claude code 防止 封号 - V2EX 用 Claude 要实名了,内地用户怎么办? OpenAI Plus 和 Team 都缩水了吗 海外 Android 手机有什么好用的国内第三方应用市场推荐吗 - V2EX 把电脑伪装成电视,用 DLNA 投屏拿到视频号直播流地址 - V2EX claude 认证莫慌 北京互联网法院有什么攻略么?起诉北京智谱华章科技股份有限公司退款可行么? - V2EX Claude 开始引入身份验证 求 vscode 做笔记软件的插件推荐 - V2EX 讯飞星辰的 Coding Plan 如何? Anthropic 宣布在 Claude 平台推行身份验证机制 科普一下低价 gpt 是怎么来的 有没有长期关注 Claude 的朋友,我建了一个 Channel 自动抓取 Claude Team 的推文 啃了那篇 54 页的 Agent Harness 综述, 给大伙讲个省流版 现在那家的 coding plan 还能买到 是不是最近会有什么更聪明的大模型要发布了呀? 用多了 AI 后,有没有觉得 AI 生成的文章有很强的既视感? 如何 实践 Harness 工程? 今日份 GPT 5.4 笑话 如何建一个自己的号池,让 cursor 真正实现 token 自由 写了三个月 Agent Harness,我终于敢让 Claude Code 全自动写代码了
做了好几个后台系统之后,我把这套多租户中后台底座开源了(XiHan.BasicApp 基于.NET 10 + Vue 3) - V2EX
zhaifanhua · 2026-06-27 · via V2EX

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

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

我也一样。前前后后做了几个中后台,每次都在重复造轮子,每次都不太满意。于是这两年,我把反复踩过的坑,沉淀成了一套自己用着顺手的底座 —— 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

写在最后

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

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

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