.NET WebForm許可權系統開發(一)

.NET WebForm許可權系統開發(一)

記得曾經剛畢業進公司的時候,也是什麼都不懂,看看別人的框架,感覺很牛Bai,自己就只是在裡面添加功能模塊而已,做為一個有想法的燒年,你難道滿足了嗎,今天我來滿足一下那些.NET新手對簡單框架的求知慾,這個系統是.NET Web窗體的,我也做了.NET MVC版本的,功能會全一點,後面感覺.NET MVC真的很方便,現在上班的關係,沒辦法轉JAVA了,所以又弄了一個JAVA版本的,當然是spring mvc的,資料庫是My SQL,.NET的我給大家介紹完我會寫JAVA的,雖然可能很多漏洞,希望大家指正,廢話不多說,來現看圖。

當然名字是我自己取得,如有設計侵權問題請及時聯繫!

裡面的功能大概就是這些,可以看圖。

說明:UI是用的LayUI做的,感覺界面還蠻好看的;

下面來說說具體設計思路吧,資料庫設計我放在前面說,因為了解了資料庫設計基本對系統就有了一個大概的思路。

(一)、首先肯定是登陸

每個系統都有的功能,我也在累述一次吧,我採用的是用session存儲用戶登錄信息,並且添加了一個父級類,每個需要登錄驗證的頁面都繼承這個類,也可以從這個類裡面獲取當前登錄的用戶信息,當然裡面還有一些許可權判斷,都放在裡面,直接擼代碼,

這是我的項目結構,也建議大家在項目中把不同的模塊分為不同的類庫,這樣不叫清晰;

來看登錄:

$.ajax({

type: post,

dataType: "text",

url: /ClientAjaxServices/LoginFrame.ashx,

data: { userName: userName, userPwd: userPwd },

cache: false,

async: false,

success: function (msg) {

switch (msg) {

case "4":

layer.msg(系統異常,請聯繫管理員!, { icon: 5 });

InitSlidOnlock("slidOnlock");

break;

case "5":

window.location.href = "/Index.aspx";

break;

case "1":

layer.msg(用戶名密碼錯誤!, { icon: 5 });

InitSlidOnlock("slidOnlock");

break;

case "3":

layer.msg(用戶已登錄!, { icon: 5 });

InitSlidOnlock("slidOnlock");

break;

default:

layer.msg(未知錯誤,請聯繫管理員!, { icon: 5 });

InitSlidOnlock("slidOnlock");

break;

}

layer.close(index);

}

});

我是用Ajax登錄的,應為我的登錄頁面時一個html頁面

這其實很簡單吧。

聲明一下:這個項目僅供學習交流使用;

好吧,被你發現了,上面其實是為了吸引你,接下來我們來看資料庫設計。

(二)、資料庫設計

這個是資料庫結構,大家也看的出來這個表也不多,而且看錶名基本知道結構,我還是大概介紹一下吧,從上到下一個一個來:

按鈕表:就是定義按鈕的點擊事件,樣式,名稱等信息,應為這個許可權系統我控制到了按鈕,所以有這個按鈕表;

部門表:簡單的部門基礎信息,我加了一個ParentID,就是父級部門ID,這樣就可以實現子部門,還有一個關鍵的欄位是OrgID,這個是機構ID,標識當前部門是屬於哪個機構的;

流程表(Flow)、線條表(Lines)、節點表(Nodes):這幾個暫時沒使用,就不多說了,應為我現在在做JAVA(裡面有用到Flow表、Lines表、Nodes表),這個系統我也做了個JAVA版的,有興趣的可以私信我,我也給大家上個圖吧,就是關於流程設計的;

這個流程的節點和線條信息已經存庫了,當然插件被我改過,這個是JAVA版的,有需要的可以聯繫我,繼續;

菜單表:規定了菜單的基礎信息,比如名稱、ID等,還有就是菜單的連接地址,還有一個也是很關鍵的就是菜單的父級ID,就是說這個菜單是屬於哪個菜單的子菜單,

像這樣,是頂級菜單的我就用空GUID來表示;

菜單按鈕表(MenuBtn):這個其實就定義了菜單ID和按鈕ID,是用來規定一個菜單有哪些按鈕的,如圖:

機構表:這個就不多說,就是機構的基礎信息,但是也有一個ParentID欄位,表示父級機構的;

許可權菜單表(RoleMenu):這個和菜單按鈕表類似,這個系統是用角色來管理許可權的,所以有這個表,這個表是表示一個角色它有哪些菜單的,後面每個用戶會分配不同的角色,所以實現了許可權的控制;

許可權菜單按鈕表(RoleMenuBtn):這個有點難理解,就是一個角色它有哪個菜單的哪個按鈕,比如說,「系統管理員」這個角色它是否有「機構管理」這個菜單的「添加」按鈕,這就好理解了吧,那如果「系統管理員」角色有「機構管理」這個菜單的「添加」按鈕和「刪除」按鈕,那這個表其實會有兩條記錄,所以是多對多的,然後一個用戶如果有「系統管理員」這個角色,那麼他就有對應的按鈕許可權,注意這個表只是標識按鈕許可權的,不標識菜單許可權;

角色表:這個就是角色基礎信息表了;

用戶所在部門表:這個不多說,就是用戶ID,部門ID;

用戶角色表:這個也是,就用戶ID,角色ID

到此資料庫的基本設計就完成了,歡迎留言交流,今天先到這裡,後面我會繼續出(二),歡迎關注;

推薦閱讀:

TAG:NET | ASPNET | Net開發 |