OpenAuth.Net權(quán)限管理系統(tǒng)
項目采用經(jīng)典DDD架構(gòu)(用沃恩.弗農(nóng)大神的話,其實這是DDD-Lite)思想進行開發(fā),簡潔而不簡單,實用至上,并且所寫每一行代碼都經(jīng)過深思熟慮,符合SOLID規(guī)則!
當然,如果你想學(xué)習完整的DDD框架,可以參考我的另一個項目(BestQ&A--開源中國推薦項目/集CQRSAES等DDD高級特性于一體的問答系統(tǒng))
項目詳細描述:http://www.cnblogs.com/yubaolee/p/OpenAuth.html
技術(shù)棧:
-
前后端完全分離,結(jié)構(gòu)更加清晰。
我們不限制規(guī)則,只用主流的技術(shù)構(gòu)建強大的框架; -
前端采用 vue + layui + ztree + gooflow + leipiformdesign
-
后端采用 asp.net mvc + Web API + EF + autofac + swagger + json.net + AutoMapper
-
代碼生成工具 CodeSmith
-
設(shè)計工具 PowerDesigner + Enterprise Architect
秀外
慧中
教科書級的分層思想,哪怕苛刻的你閱讀的是大神級精典大作(如:《企業(yè)應(yīng)用架構(gòu)模式》《重構(gòu)與模式》《ASP.NET設(shè)計模式》等),你也可以參考本項目:
實用
符合國情的RBAC(基于角色的訪問控制),可以直接應(yīng)用到你的系統(tǒng)。
權(quán)限資源
a. 菜單權(quán)限 經(jīng)理和業(yè)務(wù)員登陸系統(tǒng)擁有的功能菜單是不一樣的
b. 按鈕權(quán)限 經(jīng)理能夠?qū)徟?,而業(yè)務(wù)員不可以
c. 數(shù)據(jù)權(quán)限 A業(yè)務(wù)員看不到B業(yè)務(wù)員的單據(jù)
d. 字段權(quán)限 某些人查詢客戶信息時看不到客戶的手機號或其它字段
用戶 應(yīng)用系統(tǒng)的具體操作者,我這里設(shè)計用戶是可以直接給用戶分配菜單/按鈕,也可以通過角色分配權(quán)限。
角色 為了對許多擁有相似權(quán)限的用戶進行分類管理,定義了角色的概念,以上所有的權(quán)限資源都可以分配給角色,角色和用戶N:N的關(guān)系。
機構(gòu) 樹形的公司部門結(jié)構(gòu),國內(nèi)公司用的比較多,它實際上就是一個用戶組,機構(gòu)和用戶設(shè)計成N:N的關(guān)系,也就是說有時候一個用戶可以從屬于兩個部門,這種情況在我們客戶需求中的確都出現(xiàn)過。
系統(tǒng)工程結(jié)構(gòu):
- OpenAuth.Repository 系統(tǒng)倉儲層,用于數(shù)據(jù)庫操作
- OpenAuth.App 應(yīng)用層,為界面提供接口
- OpenAuth.Mvc 采用基于jquery與bootstrap的B-JUI界面
- OpenAuth.WebApi 為第三方應(yīng)用提供接口
- OpenAuth.UnitTest 單元測試
- Infrastructure 通用工具集合
后續(xù)
更多狂野的功能,正在玩命加載中,敬請期待...
