刘成华 發表於 2025-7-9 08:00:00

使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统

<h2 data-tool="mdnice编辑器"><span>前言</span></h2>
<p data-tool="mdnice编辑器"><span>在企业应用开发中,系统权限管理和工作流是比较常见的功能。虽说开发起来难度不大,但从零开始开发一个功能完备的权限管理和工作流系统,往往需要投入大量的时间和精力。今天大姚带领大家来使用 OpenAuth.Net 快速搭建一套 .NET 企业级权限工作流系统,希望可以帮助到有需要的小伙伴。</span></p>
<h2 data-tool="mdnice编辑器"><span>OpenAuth.Net 介绍</span></h2>
<p data-tool="mdnice编辑器"><span>OpenAuth.Net 是一个基于 .NET 开源免费(Apache-2.0 License)的权限管理及快速开发框架,.NET 开源最好用的权限工作流系统。它源于 Martin Fowler 的企业级应用开发思想,并结合了最新的技术组合,如 SqlSugar、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、Vue2/3、Element-ui/plus、IdentityServer 等。<span style="color: rgba(255, 0, 0, 1)"><strong>该项目架构易于扩展,文档齐全且免费,特别适合中小企业使用</strong></span><span>。</span></span></p>
<ul class="list-paddingleft-1">
<li><strong>项目官网地址:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">http://www.openauth.net.cn</span></span></strong></li>
<li><strong>详细使用文档:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">http://doc.openauth.net.cn</span></span></strong></li>
<li><strong>项目开源地址:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">https://gitee.com/dotnetchina/OpenAuth.Net</span></span></strong></li>
</ul>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210019056-224497120.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>项目架构图</span></h2>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210102650-548803756.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>项目特点</span></h2>
<ul class="list-paddingleft-1">
<li><strong>多租户支持:</strong><span>&nbsp;支持多租户,轻松管理多个客户的数据。</span></li>
<li><strong>规范的代码风格:</strong><span>&nbsp;代码规范易读,注释清晰,方便维护。采用主流的技术,不做任何多余的封装。</span></li>
<li><strong>简洁易用的代码生成:</strong><span>&nbsp;内置极易上手的代码生成器,支持单表、父子表等场景的代码生成,大大提升编码效率。</span></li>
<li><strong>动态表单设计:</strong><span>&nbsp;支持拖拽组件,快速构建表单,无需编写代码,即可实现表单设计。</span></li>
<li><strong>可视化流程设计:</strong><span>&nbsp;通过可视化流程设计器,快速构建流程,无需编写代码,即可实现流程设计。</span></li>
<li><strong>基于Quartz的定时任务:</strong><span>&nbsp;无需开发人员参与即可配置定时任务。可随时启/停,可视化配置 Cron表达式功能。</span></li>
<li><strong>支持多种数据库类型:</strong><span>&nbsp;项目同时支持 EF、SqlSugar 两款最流行的 ORM 框架,支持 SQL Server、MySQL、Oracle、PostgreSQL 等多种数据库。</span></li>
<li><strong>等等等......</strong></li>
</ul>
<h2 data-tool="mdnice编辑器"><span>源代码下载</span></h2>
<pre data-tool="mdnice编辑器"><span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/9M0PhLTmTIfzNFlBn3E31WlTibNpXnFoRx0QyicsnRk7v10yQHCQibWD6biaMSYTaiclW8gf2ELLs5zgWlIic4pE3yzzpbdoxy2Iab/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><code><span>git&nbsp;clone<span>&nbsp;https://gitee.com/dotnetchina/OpenAuth.Net</span></span></code></span></pre>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210130726-307530465.png" alt="" loading="lazy"></p>
<pre data-tool="mdnice编辑器"><code><span>📦OpenAuth.Net<br><span>&nbsp;┣ 📂.cursor &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//cursor rules、MCP配置<br><span>&nbsp;┣ 📂newdocs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//文档<br><span>&nbsp;┣ 📂Infrastructure &nbsp; &nbsp; &nbsp; //基础工具类<br><span>&nbsp;┣ 📂OpenAuth.Repository &nbsp;//数据库访问相关代码 &nbsp; &nbsp; &nbsp;<br><span>&nbsp;┣ 📂OpenAuth.App &nbsp; &nbsp; &nbsp; &nbsp; //应用逻辑代码<br><span>&nbsp;┣ 📂OpenAuth.Identity &nbsp; &nbsp;//IdentityServer4服务器,提供OAuth服务<br><span>&nbsp;┣ 📂OpenAuth.WebApi &nbsp; &nbsp; &nbsp;//WebApi接口站点<br><span>&nbsp;┣ 📂Vue2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //开源Vue2前端项目<br><span>&nbsp;┣ 📂数据库脚本 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //数据库脚本<br><span>&nbsp;┣ 📜.gitattributes<br><span>&nbsp;┣ 📜.gitignore<br><span>&nbsp;┣ 📜LICENSE<br><span>&nbsp;┣ 📜.cursorignore &nbsp; &nbsp; &nbsp; //cursor codebase index忽略文件<br><span>&nbsp;┣ 📜Dockerfile &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//docker文件<br><span>&nbsp;┣ 📜OpenAuth.Net.sln &nbsp; &nbsp;//解决方案<br><span>&nbsp;┗ 📜README.md<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<h3 data-tool="mdnice编辑器"><span>后端源代码</span></h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210154909-1487508402.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器"><span>前端源代码</span></h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210211185-1686736840.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器"><span>数据库脚本</span></h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210224161-654493517.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>前后端项目调用关系</span></h2>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210237676-1036848616.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>后端项目环境安装</span></h2>
<p data-tool="mdnice编辑器"><span>OpenAuth.Net 当前的目标框架是:<code><span>.NET 9</span></code><span>,所以在项目运行之前我们需要检查一下当前电脑是否安装了 .NET 9 SDK。</span></span></p>
<ul class="list-paddingleft-1">
<li>.NET 9 SDK安装:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">https://dotnet.microsoft.com/en-us/download/dotnet/9.0</span></span></li>
</ul>
<pre data-tool="mdnice编辑器"><span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/9M0PhLTmTIfzNFlBn3E31WlTibNpXnFoRx0QyicsnRk7v10yQHCQibWD6biaMSYTaiclW8gf2ELLs5zgWlIic4pE3yzzpbdoxy2Iab/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><code><span>dotnet --list-sdks</span></code></span></pre>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210317884-1056566412.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>初始化数据库脚本</span></h2>
<p data-tool="mdnice编辑器"><span>这里我们采用 MySQL 数据库作为系统的数据存储数据库,首先我们需要初始化系统的 MySQL 脚本。</span></p>
<h3 data-tool="mdnice编辑器"><span>新建数据库</span></h3>
<p data-tool="mdnice编辑器"><span>新建一个名为:<code><span>openauthdb</span></code><span>&nbsp;的数据库:</span></span></p>
</div>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210333625-800485211.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器"><span>初始化数据库数据</span></h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210351931-1133467745.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210358121-1253657941.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>后端 WebApi 项目运行</span></h2>
<h3 data-tool="mdnice编辑器"><span>后端项目数据库设置</span></h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210412760-1399616476.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器"><span>运行后端 OpenAuth.WebApi</span></h3>
<p data-tool="mdnice编辑器"><span>设置<code><span>OpenAuth.WebApi</span></code><span>为启动项目运行:</span></span></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210425452-30995731.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210430576-515083029.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210436293-415498160.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>前端项目环境安装</span></h2>
<p data-tool="mdnice编辑器"><span>Vue 的开发依赖于 Node.js 环境,因此我们需要安装 Node.js(<span style="color: rgba(255, 0, 0, 1)"><strong>建议安装最新版本的 Node.js</strong></span>)。</span></p>
<ul class="list-paddingleft-1">
<li>Node.js 下载地址:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">https://nodejs.cn/download/current</span></span></li>
</ul>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210509533-876155917.png" alt="" loading="lazy"></p>
<p data-tool="mdnice编辑器"><span>环境检查:</span></p>
<pre data-tool="mdnice编辑器"><span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/9M0PhLTmTIfzNFlBn3E31WlTibNpXnFoRx0QyicsnRk7v10yQHCQibWD6biaMSYTaiclW8gf2ELLs5zgWlIic4pE3yzzpbdoxy2Iab/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><code><span>node --version</span></code></span></pre>
</div>
</div>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210527154-577313182.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>前端项目启动</span></h2>
<h3 data-tool="mdnice编辑器"><span>在 Vs Code 中打开项目</span></h3>
<p data-tool="mdnice编辑器"><span>在 Vs Code 打开 OpenAuth.Net\Vue2 前端项目文件夹,如下图:</span></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210542957-1502362098.png" alt="" loading="lazy"></p>
<p>前端项目结构:</p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210559127-2044576250.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器"><span>安装项目所有依赖</span></h3>
<p data-tool="mdnice编辑器"><span>使用以下命令安装项目所有依赖(第一次执行的时间有点长,需要慢慢等待):</span></p>
<pre data-tool="mdnice编辑器"><span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/9M0PhLTmTIfzNFlBn3E31WlTibNpXnFoRx0QyicsnRk7v10yQHCQibWD6biaMSYTaiclW8gf2ELLs5zgWlIic4pE3yzzpbdoxy2Iab/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><code><span>npm install<br></span></code></span></pre>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210616042-373738116.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210622008-1631794735.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器"><span>前端项目运行</span></h3>
<p data-tool="mdnice编辑器"><span>使用下面命令运行前端项目:</span></p>
<pre data-tool="mdnice编辑器"><span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/9M0PhLTmTIfzNFlBn3E31WlTibNpXnFoRx0QyicsnRk7v10yQHCQibWD6biaMSYTaiclW8gf2ELLs5zgWlIic4pE3yzzpbdoxy2Iab/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><code><span>npm run dev</span></code></span></pre>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210637782-2035165466.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器"><span>项目运行效果展示</span></h2>
<p data-tool="mdnice编辑器"><span>运行 OpenAuth.Net 项目我们可以发现其实它已经涵盖了大多数通用的权限管理和工作流系统的功能模块,假如你想要了解更多的项目实用功能和特性欢迎前往官网地址查看👀,别忘了给项目一个Star支持💖。</span></p>
<ul class="list-paddingleft-1">
<li><strong>项目官网地址:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">http://www.openauth.net.cn</span></span></strong></li>
<li><strong>项目开源地址:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">https://gitee.com/dotnetchina/OpenAuth.Net</span></span></strong></li>
</ul>
<pre data-tool="mdnice编辑器"><code><span>&nbsp;App running at:<br><span>&nbsp; - Local: &nbsp; http://localhost:1803/<br><span>&nbsp; - Network: http://192.168.1.5:1803/<br></span></span></span></code></pre>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210730302-1631254258.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210738028-1878363953.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210743710-571330274.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210750884-1946033612.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210757898-1763797518.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210803486-423972187.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210812815-77513782.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210819102-402374749.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210825126-251737033.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210831474-603603064.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210838296-205566076.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210844177-801187444.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210850380-2001757303.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210856267-778207346.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210902833-1063141459.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210908736-850555133.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210916296-90897616.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202507/1336199-20250708210922121-1618187326.png" alt="" loading="lazy"></p>
</div>
</div>
<p>&nbsp;</p>
<div id="gtx-trans" style="position: absolute; left: 142px; top: 2075.59px">&nbsp;</div>

</div>
<div id="MySignature" role="contentinfo">
    <blockquote >
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者名称:</span>追逐时光者</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者简介:</span>一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【&hearts;推荐&hearts;】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。
</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/Can-daydayup/p/18973829
頁: [1]
查看完整版本: 使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统