日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

基于ASP.Net Core开发的一套通用后台框架

發布時間:2025/5/22 asp.net 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于ASP.Net Core开发的一套通用后台框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于ASP.Net Core開發一套通用后臺框架

寫在前面

這是本人在學習的過程中搭建學習的框架,如果對你有所幫助那再好不過。如果您有發現錯誤,請告知我,我會第一時間修改。
知其然,知其所以然,并非重復的造輪子。因為這段時間我發現,自己悶很久寫出來的代碼,再去看看別人的,會有種恍然大悟的感覺。不是只會用,而不知道為什么要這樣用。
真的,只看不敲,總是學不會。

Demo地址:http://app.guoddy.com
源代碼地址:https://github.com/jellydong/LJDAPP
數據并不會真實保存,設定的為測試模式,所以免登錄。

開發工具

1.Visual Studio 2019
2.SQL Server 2017
3.Power Design

總體效果

主頁


菜單管理

)
角色管理及權限配置

權限設計&Why

我這里主要涉及七個表,四個數據表,三個關聯表。
為什么這樣設計,我覺得可能這是大多數系統的需求。
1.用戶和角色多對多,一個用戶可以擁有多個角色,不然設計角色就沒有了意義,實際可能一個人身兼數職。
2.可以直接給用戶授予或取消授予某個權限。這個可能會有人覺得沒必要,所以如果不涉及這個,那就是五個表。但是我這里保留,因為很多情況下,這是很正常的需求。
3.菜單可以無限級別,根據實際需求,修改系統配置參數。

詳細說明

ObjectID、Remark、Status、CreatedBy、CreatedTime、ModifiedBy、ModifiedTime、Sort是默認字段。

SysUserInfo用戶表
  • 如果用戶數據量大的話,實際這個表只需要保留ObjectID、ULoginName、ULoginPWD就可以了,這樣可以提高速度,沒必要把所有信息都保存起來。
  • 用戶和角色多對多 R_sysUserInfo_sysRole
  • 用戶和權限項多對多(直接授權或禁止) R_UserPermissions
Name說明類型主鍵
ObjectID主鍵nvarchar(50)TRUE
ULoginName用戶名nvarchar(20)
ULoginPWD密碼nvarchar(50)
URealName真實姓名nvarchar(10)
UTelphone電話nvarchar(20)
UMobile手機號nvarchar(11)
UEmailEmailnvarchar(50)
UQQQQnvarchar(20)
UGender性別:0-女;1-男;2-保密int
UDepID所屬部門nvarchar(50)
Remark備注nvarchar(500)
Status狀態:0-啟用;1-禁用int
CreatedBy創建人nvarchar(50)
CreatedTime創建時間datetime
ModifiedBy修改人nvarchar(50)
ModifiedTime修改時間datetime
Sort排序值int
SysRole角色表
  • 對角色的分類,比如管理員、普通用戶等。
  • 角色用戶多對多 R_sysUserInfo_sysRole
  • 角色權限多對多 R_RolePermission
Name說明類型主鍵
ObjectID主鍵nvarchar(50)TRUE
RName角色名稱varchar(50)
Remark備注nvarchar(500)
Status狀態:0-啟用;1-禁用int
CreatedBy創建人nvarchar(50)
CreatedTime創建時間datetime
ModifiedBy修改人nvarchar(50)
ModifiedTime修改時間datetime
Sort排序值int
SysMenus菜單表
  • 菜單表 是一開始設計好后,改動最多的一個表。后續在開發過程中增加了IsLast、Hierarchy;去除了MAction
  • IsLast用來標記是不是最后一級,如果是最后一級我們給自動增加增刪改等默認方法。
  • Hierarchy用來標記層級,前面我們說可以做到無限極,但是通常情況下會是三級,所以這個需要根據實際設定系統參數,維護的時候檢查限制即可。
  • IsMenuShow是否作為菜單顯示,也就是左側菜單遞歸的,因為有部分API不需要作為菜單顯示,并且授權的方式也會不一樣。
  • 菜單角色多對多 R_RolePermission
  • 菜單權限項一對多
Name說明類型主鍵
ObjectID主鍵nvarchar(50)TRUE
MName名稱nvarchar(100)
MUrlURLnvarchar(100)
MArea區域nvarchar(100)
MController控制器nvarchar(100)
MIcon圖標nvarchar(100)
IsLast是不是最后一級菜單:0-是;1-否int
IsMenuShow是不是作為菜單顯示:0-是;1-否int
Remark備注nvarchar(500)
ParentID父IDnvarchar(50)
Status狀態:0-啟用;1-禁用int
Hierarchy層級int
CreatedBy創建人nvarchar(50)
CreatedTime創建時間datetime
ModifiedBy修改人nvarchar(50)
ModifiedTime修改時間datetime
Sort排序值int
SysFunction 菜單按鈕表 (菜單權限項表)
  • SysFunction一開始我是叫菜單按鈕表的,我計劃是查詢、新增編輯刪除、其他權限這樣控制,但后來發現這樣不好,所以全都分開,每個方法都要記錄。當然為了方便,通用的方法,在增加菜單的時候會自動添加上。
  • 菜單權限項菜單是多對一關系
Name說明類型主鍵
ObjectID主鍵nvarchar(50)TRUE
FName名稱nvarchar(50)
FFunction方法nvarchar(50)
FIcon圖標nvarchar(50)
ParentID所屬菜單nvarchar(50)
Remark備注nvarchar(500)
Status狀態:0-啟用;1-禁用int
CreatedBy創建人nvarchar(50)
CreatedTime創建時間datetime
ModifiedBy修改人nvarchar(50)
ModifiedTime修改時間datetime
Sort排序值int
R_sysUserInfo_sysRole用戶和角色關聯表,記錄用戶和角色的對應關系。
R_RolePermission 角色菜單權限項關聯表。

比如一個角色有用某菜單下的查詢和刪除權限,那么這個表應該是具有兩條記錄的。

R_UserPermissions 用戶菜單權限項關聯表。

HavePermission記錄該用戶是 是否有權限:0-無權限;1-有權限
后續處理的時候,要從獲取的權限記錄中排除直接無權限的記錄,增加有權限的。

總結

其實網上很多關于權限的文章,之前自己再看的時候,總是覺得迷迷糊糊,所以最后打算自己動手做。到做完的時候,才有所理解。我也不知道我這里敘述的是不是不清楚或者設計的是否合理,如果您覺得有問題,請告知我,我會立即改正!
切勿眼高手低,動手敲,像Power Design我也是第一次用,也是第一次用MarkDown寫博客。
此框架可以快速搭建應用,T4模板生成代碼,適合學習使用。如有問題,請與我聯系

Demo地址:http://app.guoddy.com
源代碼地址:https://github.com/jellydong/LJDAPP
數據并不會真實保存,設定的為測試模式,所以免登錄。

轉載于:https://www.cnblogs.com/jellydong/p/11462192.html

總結

以上是生活随笔為你收集整理的基于ASP.Net Core开发的一套通用后台框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。