




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教務(wù)管理平臺(tái)-權(quán)限及公共模塊設(shè)計(jì)與開發(fā)論文作者姓名:申請(qǐng)學(xué)位專業(yè):申請(qǐng)學(xué)位類別:指導(dǎo)教師姓名(職稱):論文提交日期:教務(wù)管理平臺(tái)-權(quán)限及公共模塊設(shè)計(jì)與開發(fā)摘 要隨著教育改革的不斷深化,高等院校的建設(shè)與發(fā)展對(duì)國(guó)民整體素質(zhì)的提高起著越來(lái)越重要的作用,建立一套能夠適應(yīng)這些改變的行政管理方案也就顯得尤為重要。對(duì)于教務(wù)處來(lái)說(shuō),將信息技術(shù)用于校務(wù)管理中便是迫切的要求。教務(wù)系統(tǒng)中的用戶數(shù)量眾多,需要具有不同的權(quán)限,以實(shí)現(xiàn)不同的應(yīng)用。本論文介紹了開發(fā)背景,開發(fā)平臺(tái),并基于需求分析實(shí)現(xiàn)了教務(wù)管理平臺(tái)中基于角色控制的權(quán)限系統(tǒng)(RBAC)及公共模塊的設(shè)計(jì)與開發(fā)。RBAC實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離,更符合教務(wù)平臺(tái)
2、的用戶、數(shù)據(jù)和應(yīng)用特征;在公共模塊中實(shí)現(xiàn)了系統(tǒng)通用的日志管理,異常處理,常用類庫(kù)方法等。通過設(shè)計(jì)和應(yīng)用本系統(tǒng),有效的解決了教務(wù)平臺(tái)中關(guān)于用戶管理與權(quán)限操作等方面的問題,為系統(tǒng)公共模塊的實(shí)現(xiàn)打下堅(jiān)實(shí)的基礎(chǔ)。通過較為詳盡的功能測(cè)試,表明本文的設(shè)計(jì)內(nèi)容具有一定的通用性,可用于需要?jiǎng)討B(tài)分配權(quán)限與角色的管理系統(tǒng)中。關(guān)鍵詞: 權(quán)限;公共模塊;RBACEducation Management Platform- The Design and Implementation of Authority System and Public ModuleAbstractWith the continuous deep
3、ening of educational reform, the construction and development of universities players an increasingly important role to raise the overall quality, establish an administration solution to adapt these changes is particularly important. For the educational administration department, information technol
4、ogy use in the school management is an urgent requirement. The education management platform has large number of users and needs different authority in order to achieve different applications. This paper introduces the development background, the development platforms, the module design and developm
5、ent of education management platform, role based authority control system module (RBAC) and public module by requirements analysis. RBAC more separate the data and program from users, the system of education management platform for realizing the logic separation of user and access rights. The public
6、 module implements a generic system log management, exception handling, common library methods. With the developing of the system, it supplies an effective solution to the questions of user management and authority control of the platform and the public platform module methods, which has laid a soli
7、d foundation for the implementation of the systems public module. By the detailed functional testing, it shows the generality, so the system may be used for the management system of dynamic allocation of authority and role.Key words: authority;public module;RBAC;目 錄論文總頁(yè)數(shù):22頁(yè)1 引言11.1課題背景11.2課題目的11.3課
8、題意義12 系統(tǒng)平臺(tái)與相關(guān)技術(shù)22.1系統(tǒng)架構(gòu)22.2 開發(fā)平臺(tái)介紹22.2.1 Visual Studio 2005介紹22.2.2 SQL Server 2005介紹22.3 開發(fā)技術(shù)介紹22.3.1 A22.3.2 RBAC32.3.3 Identity和IPrincipal33 需求分析和數(shù)據(jù)庫(kù)設(shè)計(jì)33.1 應(yīng)解決的問題33.1.1 基于RBAC的權(quán)限系統(tǒng).33.1.2 平臺(tái)需要的公共模塊43.2功能需求43.2.1用戶信息管理53.2.2 角色信息管理53.2.3 資源管理53.2.4 用戶角色分配53.2.5 角色權(quán)限分配53.2.6 權(quán)限操作53.2.7 日志管理53.2.8 異
9、常處理63.2.9 基礎(chǔ)公共類庫(kù)63.3非功能需求63.3.1包容性和可擴(kuò)展性63.3.2系統(tǒng)簡(jiǎn)潔,易使用、易維護(hù)、適用非計(jì)算機(jī)專業(yè)人員使用63.3.3充分保護(hù)數(shù)據(jù)的一致性63.3.4采用先進(jìn)成熟的技術(shù),建立實(shí)用可靠的系統(tǒng)63.4 數(shù)據(jù)庫(kù)設(shè)計(jì)64 系統(tǒng)設(shè)計(jì)設(shè)計(jì)與實(shí)現(xiàn)94.1公共模塊設(shè)計(jì)94.1.1數(shù)據(jù)庫(kù)通用類設(shè)計(jì)94.1.2系統(tǒng)工具通用類設(shè)計(jì)94.1.3系統(tǒng)日志和樹目錄設(shè)計(jì)104.1.4系統(tǒng)異常處理124.1.5系統(tǒng)通用頁(yè)面設(shè)計(jì)124.2 權(quán)限系統(tǒng)模塊的實(shí)現(xiàn)134.2.1 用戶信息管理和角色綁定134.2.2 角色管理和權(quán)限綁定154.2.3 權(quán)限管理164.2.4 系統(tǒng)資源管理和權(quán)限綁定及菜
10、單操作174.2.4 url過濾185 測(cè)試20結(jié) 論20參考文獻(xiàn)20致 謝21聲 明221 引言教務(wù)管理平臺(tái)對(duì)安全問題有較高的要求,傳統(tǒng)的訪問控制方法DAC(Discretionary Access Control,自主訪問控制模型)、MAC(Mandatory Access Control,強(qiáng)制訪問控制模型)難以滿足復(fù)雜的教務(wù)管理平臺(tái)需求。NIST(National Institute of Standards and Technology,美國(guó)國(guó)家標(biāo)準(zhǔn)化和技術(shù)委員會(huì))于90年代初提出了基于角色的訪問控制方法(RBAC),實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離,更符合企業(yè)的用戶、組織、數(shù)據(jù)和應(yīng)用特
11、征。RBAC(角色訪問控制)的基本思想即把整個(gè)訪問控制過程分成兩步:訪問權(quán)限與角色相關(guān)聯(lián),角色再與用戶關(guān)聯(lián),從而實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離。由于RBAC實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離,因此它極大的方便了權(quán)限管理。例如,如果一個(gè)用戶的職位發(fā)生變化,只要將用戶當(dāng)前的角色去掉,加入代表新職務(wù)或新任務(wù)的角色即可,角色/權(quán)限之間的變化比角色/用戶關(guān)系之間的變化相對(duì)要慢得多,并且委派用戶到角色不需要很多技術(shù),可以由行政管理人員來(lái)執(zhí)行,而配置權(quán)限到角色的工作比較復(fù)雜,需要一定的技術(shù),可以由專門的技術(shù)人員來(lái)承擔(dān),但是不給他們委派用戶的權(quán)限,這與現(xiàn)實(shí)中情況正好一致。1.1 課題背景目前國(guó)家的教育體制也正處在
12、不斷改革、創(chuàng)新的階段,我國(guó)教育部門充分吸取國(guó)外優(yōu)秀的教學(xué)模式,結(jié)合國(guó)內(nèi)多年的辦學(xué)經(jīng)驗(yàn),逐步探索出適合中國(guó)特色的教學(xué)形式,因此國(guó)家教育部面向各級(jí)各類學(xué)校開展了全面學(xué)分制改革。因此,各院校迫切需要對(duì)自己的現(xiàn)有教務(wù)管理系統(tǒng)進(jìn)行改進(jìn)和提高,根據(jù)國(guó)內(nèi)大學(xué)的現(xiàn)在管理模式,結(jié)合國(guó)際新的思想觀念,在校園網(wǎng)絡(luò)環(huán)境下建設(shè)先進(jìn)的、與國(guó)際水平接軌的信息化管理平臺(tái)。提高學(xué)校管理工作的現(xiàn)代化水平,使之成為學(xué)校公共信息服務(wù)體系的重要組成部分。在這樣的大環(huán)境下,我們選擇了“教務(wù)管理平臺(tái)”這個(gè)系統(tǒng),符合實(shí)際需求。其中教務(wù)管理平臺(tái)中使用人員的復(fù)雜性和眾多模塊的管理,需要較為復(fù)雜和安全的權(quán)限系統(tǒng),另外由于團(tuán)隊(duì)開發(fā)和系統(tǒng)平臺(tái)的需要,
13、也需要一定的公共模塊的支持。例如日志管理,異常處理,數(shù)據(jù)驗(yàn)證和過濾等。1.2 課題目的為教務(wù)管理平臺(tái)設(shè)計(jì)一套安全,通用,可擴(kuò)展的權(quán)限系統(tǒng)和系統(tǒng)公共基礎(chǔ)模塊的設(shè)計(jì)與開發(fā),以應(yīng)對(duì)系統(tǒng)和團(tuán)隊(duì)開發(fā)的需要。1.3 課題意義通過完成本課題系統(tǒng)的設(shè)計(jì)與開發(fā),為團(tuán)隊(duì)開發(fā)教務(wù)管理平臺(tái)打下基礎(chǔ),加快整個(gè)教務(wù)管理系統(tǒng)的開發(fā)速度,以應(yīng)對(duì)實(shí)際教務(wù)管理工作自動(dòng)化的需要,極大提高教務(wù)管理工作人員的效率。2 系統(tǒng)平臺(tái)與相關(guān)技術(shù)2.1 系統(tǒng)架構(gòu)B/S架構(gòu)的優(yōu)點(diǎn)在于客戶端和服務(wù)器通過Intranet進(jìn)行數(shù)據(jù)交換,客戶端基于統(tǒng)一的WEB瀏覽器,減少了投資,解決了系統(tǒng)維護(hù)升級(jí)的問題,另外只有極少部分事務(wù)邏輯在前端(Browser)實(shí)
14、現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),這也就充分保護(hù)了數(shù)據(jù)的安全。根據(jù)教務(wù)平臺(tái)的需求和實(shí)際使用情況,由于人員的復(fù)雜性和訪問機(jī)器的分布性,適合使用B/S架構(gòu)。2.2 開發(fā)平臺(tái)介紹本畢業(yè)設(shè)計(jì)的命題是教務(wù)管理平臺(tái)中權(quán)限系統(tǒng)和公共模塊的設(shè)計(jì)和開發(fā),根據(jù)團(tuán)隊(duì)要求和開發(fā)成本選擇了Visual Studio 2005+SQL 2005開發(fā)環(huán)境,使用的語(yǔ)言為c#。2.2.1 Visual Studio 2005介紹Visual Studio 2005 是一系列高效的、智能的開發(fā)工具的統(tǒng)稱,它擁有一個(gè)龐大的產(chǎn)品線,包括面向?qū)W生、愛好者、初學(xué)者的Express版,面向?qū)<?、Visual Basic
15、6的Standard版,面向顧問、企業(yè)開發(fā)人員的Professional版和面向架構(gòu)師的Team System版本。在這些版本中,有些集成了開發(fā)軟件常用到的東西,比如重構(gòu)、單元測(cè)試、類設(shè)計(jì)器等等,以方便開發(fā)人員快速的設(shè)計(jì)各類軟件。2.2.2 SQL Server 2005介紹SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。SQL Server 2005 數(shù)據(jù)引擎是企業(yè)數(shù)據(jù)管理解決方案的核心。
16、此外 SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。2.3 開發(fā)技術(shù)介紹2.3.1 AASP.NET是微軟流行的動(dòng)態(tài)WEB編程技術(shù)活動(dòng)服務(wù)器網(wǎng)頁(yè)(ASP)的最新版本,但它遠(yuǎn)不是傳統(tǒng)ASP簡(jiǎn)單升級(jí)。ASP.NET和ASP的最大區(qū)別在于編程思維的轉(zhuǎn)換,ASP.NET是真正的面向?qū)ο螅∣bject-oriented),而不僅僅在于功能的增強(qiáng)。在ASP.NET中,Web 窗體頁(yè)由兩部分組成:視覺元素(HTML、服務(wù)器控件和靜態(tài)文本和該頁(yè)的編程邏輯。其中每一部分都存儲(chǔ)在一個(gè)單獨(dú)的文件中??梢曉卦谝粋€(gè)擴(kuò)展名為 .aspx 文件中創(chuàng)建,而代碼位于一個(gè)單獨(dú)的類文件中,該文件稱作代碼隱藏類
17、文件擴(kuò)展名為.aspx.vb 或 .aspx.cs。這樣,.aspx文件中存放所有要顯示的元素,aspx.vb或.aspx.cs文件中存放邏輯。2.3.2 RBAC企業(yè)環(huán)境中的訪問控制策略一般有三種:自主型訪問控制方法、強(qiáng)制型訪問控制方法和基于角色的訪問控制方法(RBAC)。其中,自主式太弱,強(qiáng)制式太強(qiáng),二者工作量大,不便于管理。基于角色的訪問控制方法是目前公認(rèn)的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法。其顯著的兩大特征是:1.減小授權(quán)管理的復(fù)雜性,降低管理開銷;2.靈活地支持企業(yè)的安全策略,并對(duì)企業(yè)的變化有很大的伸縮性?;诮巧脑L問控制RBAC作為一種靈活和直觀的訪問控制技術(shù)在20世紀(jì)90
18、年代迅速發(fā)展起來(lái),RBAC通過引入角色的新概念來(lái)實(shí)施訪問控制策略。不同的角色和它所應(yīng)具有的權(quán)限許可互相聯(lián)系,用戶作為某些角色的成員,獲得角色所擁有的權(quán)限。角色可以根據(jù)實(shí)際的單位或組織的不同工作職能和權(quán)限來(lái)劃分,依據(jù)用戶所承擔(dān)的不同權(quán)利和義務(wù)來(lái)授權(quán)相應(yīng)的角色,對(duì)于一個(gè)存在大量用戶和權(quán)限的權(quán)限分配系統(tǒng)來(lái)說(shuō),從用戶到角色的管理,簡(jiǎn)化了權(quán)限分配的復(fù)雜性,提高了安全管理的效率和質(zhì)量。2.3.3 Identity和IPrincipalPrincipal對(duì)象是實(shí)現(xiàn)了IPrincipal接口的類的實(shí)例,這些對(duì)象用來(lái)表示用戶,并且包括了用戶的身份信息。對(duì)于每一個(gè)線程來(lái)說(shuō)都與一個(gè)principal對(duì)象相關(guān)聯(lián)。這個(gè)
19、principal對(duì)象包括了表示運(yùn)行當(dāng)前線程的用戶的identity對(duì)象。3 需求分析和數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 應(yīng)解決的問題3.1.1 基于RBAC的權(quán)限系統(tǒng).1 用戶(user)和角色(role)用戶指訪問系統(tǒng)中的資源的主體,一般為人,也可為 Agent 等智能程序。角色指應(yīng)用領(lǐng)域內(nèi)一種權(quán)力和責(zé)任的語(yǔ)義綜合體,可以是一個(gè)抽象概念,也可以是對(duì)應(yīng)于實(shí)際系統(tǒng)中的特定語(yǔ)義體,比如組織內(nèi)部的職務(wù)等。針對(duì)角色屬性的不同,某些模型中將角色進(jìn)一步細(xì)分為普通角色和管理員角色(可理解為全局角色)。2 許可(Permissions)和權(quán)限(Permission)許可描述了角色對(duì)計(jì)算機(jī)資源的訪問和操作所具有的權(quán)限,其反映
20、的是授權(quán)的結(jié)果。比如授予某個(gè)角色對(duì)計(jì)算機(jī)資源有讀的權(quán)限,則代表了一個(gè)許可的存在,這個(gè)許可表示:角色獲取了對(duì)計(jì)算機(jī)資源的讀許可。針對(duì)操作來(lái)說(shuō),其描述的是許可和操作之間的一種關(guān)聯(lián)關(guān)系,而這層關(guān)系則表示了某一角色對(duì)某一操作所具有的權(quán)限及權(quán)限狀態(tài)。3 角色和指派(Assignment)指派包含兩個(gè)方面,用戶指派和許可指派。用戶指派表示的是,將用戶指派給特定的角色。許可指派表示的是為角色指派計(jì)算機(jī)資源的訪問和操作許可。3.1.2 平臺(tái)需要的公共模塊1日志管理2異常處理3加密模塊及字符串驗(yàn)證與過濾等公共模塊。3.2 功能需求按照教務(wù)平臺(tái)RBAC權(quán)限系統(tǒng)的需要,和相關(guān)公共基礎(chǔ)模塊的需要,有如下的功能需求。如
21、圖1所示。權(quán)限系統(tǒng)及公共模塊用戶管理角色管理權(quán)限管理資源管理日志管理異常處理公共類庫(kù)圖1 系統(tǒng)功能圖RBAC中用戶,角色,權(quán)限,資源之間的關(guān)系如圖2所示。用戶管理角色管理權(quán)限管理資源管理圖2 RBAC關(guān)系圖3.2.1 用戶信息管理用戶是權(quán)限的擁有者或主體。用戶和權(quán)限實(shí)現(xiàn)分離,通過授權(quán)管理進(jìn)行綁定。用戶信息管理主要提供教務(wù)管理平臺(tái)相關(guān)使用人員的信息的管理,包括添加,刪除,修改等相關(guān)操作。3.2.2 角色信息管理角色是權(quán)利和責(zé)任的標(biāo)識(shí),角色信息管理主要提供教務(wù)管理平臺(tái)相關(guān)使用人員所屬角色信息的管理,包括添加,刪除,修改等相關(guān)操作。角色和權(quán)限管理起來(lái)后,就擁有了一定的資源操作權(quán)力。3.2.3 資源管
22、理資源管理主要提供教務(wù)管理平臺(tái)中各個(gè)功能模塊可訪問資源的管理,包括各種資源相關(guān)權(quán)限的添加,刪除,修改等相關(guān)操作。資源包括各種操作和可訪問的頁(yè)面等。3.2.4 用戶角色分配實(shí)現(xiàn)用戶和角色之間的關(guān)聯(lián)關(guān)系映射。在用戶信息列表中,選擇要分配角色的用戶,單擊列表中的用戶名,進(jìn)入分配角色頁(yè)面所示的窗口。在為用戶分配角色的窗口中,主要是通過職能范圍來(lái)確定用戶的權(quán)限。每一個(gè)用戶在每一個(gè)職能范圍中均有一個(gè)默認(rèn)的角色,并可以瀏覽該職能域中密級(jí)為“公開”的數(shù)據(jù)元。為用戶分配角色主要就是修改選定的用戶在每一個(gè)職能范圍中的角色,以及在每個(gè)職能范圍中可以操作的數(shù)據(jù)元的密級(jí)。3.2.5 角色權(quán)限分配實(shí)現(xiàn)權(quán)限操作和角色之間的
23、關(guān)聯(lián)關(guān)系映射。角色描述用戶的職能,權(quán)限是可訪問資源的標(biāo)識(shí),給指定的角色分配權(quán)限,使角色具有了真正意義上的職能范圍。3.2.6 權(quán)限操作完成資源和權(quán)限之間的綁定??稍L問的資源或操作需要一個(gè)標(biāo)識(shí)來(lái)標(biāo)明,權(quán)限用通俗的語(yǔ)言來(lái)描述這種可用操作。例如用戶查看某個(gè)列表,“查看”就代表了權(quán)限,而“列表“就是資源。3.2.7 日志管理日志是每個(gè)系統(tǒng)必不可少的東西,教務(wù)平臺(tái)中用戶的登陸信息,操作信息或異常信息都需要保存,以方便管理員的調(diào)用。日志管理主要完成對(duì)系統(tǒng)相關(guān)各種日志的記錄和管理,將信息持久化保存。3.2.8 異常處理異常處理是每個(gè)系統(tǒng)必備的,自定義異常有助于把系統(tǒng)的錯(cuò)誤信息按照自己定義的方式來(lái)處理,教務(wù)平
24、臺(tái)中把異常信息的保存進(jìn)日志系統(tǒng)中,方便系統(tǒng)管理員查看,以及時(shí)修補(bǔ)系統(tǒng)存在的問題。3.2.9 基礎(chǔ)公共類庫(kù)完成相關(guān)系統(tǒng)基本類庫(kù)的設(shè)計(jì)。涉及到數(shù)據(jù)庫(kù)操作,相關(guān)javascript操作,字符串過濾和編碼解碼,分頁(yè)等。這類方法通常具有一般的通用性,以方便教務(wù)平臺(tái)各模塊的調(diào)用。3.3 非功能需求3.3.1 包容性和可擴(kuò)展性系統(tǒng)應(yīng)具有較好的可擴(kuò)展性和包容性。系統(tǒng)的可擴(kuò)展性應(yīng)包括能接納已有的系統(tǒng)和在今后系統(tǒng)軟硬件擴(kuò)展時(shí),能有效地保護(hù)已有的投資。特別是在應(yīng)用需求變化時(shí)(應(yīng)用與系統(tǒng)的需求往往提不全或者經(jīng)常會(huì)變化),有一個(gè)較好的應(yīng)用平臺(tái),能容易地加以調(diào)整。系統(tǒng)易于擴(kuò)充升級(jí),既能滿足當(dāng)前業(yè)務(wù)的需求,又為今后的擴(kuò)充留
25、有空間。3.3.2 系統(tǒng)簡(jiǎn)潔,易使用、易維護(hù)、適用非計(jì)算機(jī)專業(yè)人員使用系統(tǒng)的設(shè)計(jì)需要考慮用戶的計(jì)算機(jī)水平,做到簡(jiǎn)單易用,沒有計(jì)算機(jī)專業(yè)背景的用戶也可以輕松的使用本系統(tǒng)完成復(fù)雜的排課工作。3.3.3 充分保護(hù)數(shù)據(jù)的一致性權(quán)限系統(tǒng)中的用戶,角色,權(quán)限,資源等多種信息。各信息存在著一定的關(guān)聯(lián)關(guān)系。權(quán)限系統(tǒng)所使用的信息需要數(shù)據(jù)的高度一致,因此,非常有必要在設(shè)計(jì)時(shí)將數(shù)據(jù)的一致性作為一個(gè)重點(diǎn)來(lái)考慮。3.3.4 采用先進(jìn)成熟的技術(shù),建立實(shí)用可靠的系統(tǒng)本系統(tǒng)的建設(shè)目標(biāo)是否能實(shí)現(xiàn),系統(tǒng)整個(gè)投資能否發(fā)揮應(yīng)有的效益,最終將取決于該系統(tǒng)是否可靠實(shí)用。為此,系統(tǒng)應(yīng)采用成熟可靠的技術(shù),應(yīng)貫徹產(chǎn)品化的設(shè)計(jì)原則和實(shí)施方法。同
26、時(shí),系統(tǒng)的起點(diǎn)要高,而不是基于淘汰的技術(shù),系統(tǒng)的建立應(yīng)適應(yīng)未來(lái)技術(shù)發(fā)展的趨勢(shì)。3.4 數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)需求分析中的各種模塊,設(shè)計(jì)了如下的數(shù)據(jù)庫(kù)。l 用戶表 Accounts_Users用來(lái)存儲(chǔ)系統(tǒng)用戶。表的字段說(shuō)明如表1所示。表1 Accounts_Users(用戶表)序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1UserIDint4用戶ID2UserNamevarchar50用戶名3Passwordbinary20密碼4TrueNamevarchar50真實(shí)姓名5Sexchar2性別6Phonevarchar20電話7Emailvarchar100郵箱8Activitybit1是否激活9Styl
27、eint4頁(yè)面風(fēng)格l 用戶角色表(Account_UserRoles) ,主要用于對(duì)應(yīng)某用戶和所屬角色的對(duì)應(yīng)關(guān)系,字段說(shuō)明如表2所示。表2 Accounts_UserRoles序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1UserIDInt4用戶ID2RoleIDInt4角色I(xiàn)Dl 角色表(Accounts_Roles),用來(lái)存儲(chǔ)各種角色信息,字段說(shuō)明如表3所示。表3 Accounts_Roles序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1RoleIDInt4角色I(xiàn)D2DescriptionVarchar255角色說(shuō)明l 角色權(quán)限表用來(lái)存儲(chǔ)角色所擁有的權(quán)限. 表的字段說(shuō)明如表4所示。表4 Acc
28、ounts_RolePermissions序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1RoleIDInt4角色I(xiàn)D2PermissionIDInt4權(quán)限IDl 權(quán)限表(Account_Permissions)用來(lái)存儲(chǔ)各種可用權(quán)限。表的字段說(shuō)明如表5所示。表5 Accounts_Permissions序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1PermissionIDInt4權(quán)限ID2Descriptionvarchar255權(quán)限說(shuō)明3CategoryIDInt4權(quán)限類別l 權(quán)限類別(Accounts_PermissionsCategories)存儲(chǔ)權(quán)限的類別,表的字段說(shuō)明如表6所示。表6 Ac
29、counts_PermissionCategories序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1CategoryIDInt4類別ID2DescriptionVarchar255類別說(shuō)明l 目錄樹(S_Tree),存放系統(tǒng)的目錄樹,可無(wú)限添加.表的字段說(shuō)明如表7所示。表7 S_Tree序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1NodeIDInt4結(jié)點(diǎn)ID2Textvarchar100文本3ParentIDint4母結(jié)點(diǎn)ID4ParentPathvarchar50母結(jié)點(diǎn)ID5Locationvarchar50目錄所在位置6OrderIDint4順序號(hào)7commentvarchar50說(shuō)明8Ur
30、lvarchar100URL9PermissionIDint4權(quán)限ID10ImageUrlvarchar100圖片URLl 日志(S_Log),存放系統(tǒng)日志. 如表8所示。表8 S_Log序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1IDbigint82CategoryIDint4類別ID3UserIDvarchar50用戶ID4datetimedatetime8時(shí)間loginfovarchar500信息5IpAddressvarchar500用戶IPl 日志類別(Log_Category),日志類別,如表9所示。表9 Log_Category序號(hào)列名數(shù)據(jù)類型長(zhǎng)度標(biāo)識(shí)主鍵允許空字段說(shuō)明1Cate
31、goryIDint4類別ID2CategoryNamevarchar50類別名稱l 數(shù)據(jù)庫(kù)關(guān)系圖圖3 數(shù)據(jù)庫(kù)關(guān)系圖數(shù)據(jù)庫(kù)表之間的關(guān)系如圖3所示。4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)4.1 公共模塊設(shè)計(jì)系統(tǒng)公共模塊包括系統(tǒng)數(shù)據(jù)庫(kù)操作,系統(tǒng)通用工具類,樹目錄管理,系統(tǒng)通用頁(yè)面設(shè)計(jì)。4.1.1 數(shù)據(jù)庫(kù)通用類設(shè)計(jì)數(shù)據(jù)庫(kù)通用類由類DbManagerSQL實(shí)現(xiàn),它是應(yīng)用程序通過ADO.NET訪問數(shù)據(jù)庫(kù)的基礎(chǔ)類,也是應(yīng)用程序?qū)崿F(xiàn)上層業(yè)務(wù)邏輯的基礎(chǔ).該類主要封裝了創(chuàng)建訪問數(shù)據(jù)庫(kù)的一些對(duì)象或方法,如數(shù)據(jù)庫(kù)連接對(duì)象等.以及執(zhí)行數(shù)據(jù)庫(kù)操作的必需對(duì)象。該類通過構(gòu)造函數(shù)讀取config配置文件里的數(shù)據(jù)庫(kù)連接,類方法有執(zhí)行簡(jiǎn)單SQL語(yǔ)句,
32、執(zhí)行存儲(chǔ)過程,事務(wù)處理,返回datareader和dataset等操作方法。4.1.2 系統(tǒng)工具通用類設(shè)計(jì)在本系統(tǒng)中,應(yīng)用程序定義了幾個(gè)工具通用類,它們?cè)谡麄€(gè)應(yīng)用過程中被應(yīng)用了很多次,因此才能把它們集中在一起作為系統(tǒng)工具通用類。系統(tǒng)工具類通用類由命名空間Njj.Common下的各種類提供。ConfigHelper.cs提供了關(guān)于讀取webconfig中字符串值的各種方法。MessageBox.cs中封裝了向?yàn)g覽器寫入javascript代碼和彈出對(duì)話框窗口的各種操作.PageValidate.cs中提供了各種數(shù)據(jù)驗(yàn)證函數(shù)和字符串過濾,html編碼解碼等各種操作。Njj.PageControl里
33、的各種類提供了一些通用的頁(yè)面自定義控件的操作,分頁(yè)的樣式等。4.1.3 系統(tǒng)日志和樹目錄設(shè)計(jì)命名空間Njj.TreeAndLog下的TreeAndLogManage類封裝了關(guān)于日志的相關(guān)操作和目錄列表的樹相關(guān)操作。日志操作有添加,修改,刪除日志類別的功能和添加,修改,刪除日志的功能。日志主要記錄系統(tǒng)用戶的各種可記錄操作,以及系統(tǒng)異常發(fā)生時(shí)的堆棧信息,以方便管理員的管理。主要記錄內(nèi)容有用戶,日志記錄時(shí)間,日志錯(cuò)誤信息,用戶IP,日志類別等。日志錯(cuò)誤信息包含堆棧錯(cuò)誤或相關(guān)用戶的操作記錄。系統(tǒng)主要界面如圖4,圖5所示。圖4 日志詳細(xì)信息圖5 日志管理圖6 樹狀菜單目錄樹列表調(diào)用SysNode樹子結(jié)點(diǎn)
34、對(duì)象來(lái)對(duì)數(shù)據(jù)庫(kù)S_Tree執(zhí)行各種添加,刪除,修改操作,根據(jù)用戶角色調(diào)用其相關(guān)的權(quán)限列表,動(dòng)態(tài)顯示菜單。界面如圖6所示。代碼如下所示。DataRow drs = dt.Select(ParentID= + 0);/選出所有子節(jié)點(diǎn) /菜單狀態(tài) string MenuExpanded = NJJ.Common.ConfigHelper.GetConfigString(MenuExpanded); bool menuExpand = bool.Parse(MenuExpanded); TreeView1.Nodes.Clear(); / 清空樹 foreach (DataRow r in drs)
35、string nodeid = rNodeID.ToString(); string text = rText.ToString(); string parentid = rParentID.ToString(); string location = rLocation.ToString(); string url = rUrl.ToString(); string imageurl = rImageUrl.ToString(); int permissionid = int.Parse(rPermissionID.ToString().Trim(); string framename = T
36、argetFrame; /treevie 設(shè)置 this.TreeView1.Font.Name = 宋體; this.TreeView1.Font.Size = FontUnit.Parse(9); /權(quán)限控制菜單 if (permissionid = -1) | (user.HasPermissionID(permissionid)/綁定用戶有權(quán)限的和沒設(shè)權(quán)限的(即公開的菜單) TreeNode rootnode = new TreeNode(); rootnode.Text = text; rootnode.Value = nodeid; rootnode.NavigateUrl = u
37、rl; rootnode.Target = framename; rootnode.Expanded = menuExpand; rootnode.ImageUrl = imageurl; rootnode.SelectAction = TreeNodeSelectAction.Expand;/設(shè)置菜單狀態(tài) TreeView1.Nodes.Add(rootnode); int sonparentid = int.Parse(nodeid);/ 子節(jié)點(diǎn)ID CreateNode(framename, sonparentid, rootnode, dt);/遞歸顯示菜單項(xiàng) 4.1.4 系統(tǒng)異常處理
38、系統(tǒng)異常處理有類MyException實(shí)現(xiàn),它繼承于系統(tǒng)的異常類Exception,并重載基類的 異常處理函數(shù)MyException().該類中了定義了兩個(gè)異常處理函數(shù),其中一個(gè)函數(shù)為MyException(string source,string message,Exception inner),該函數(shù)在重載記錄函數(shù)時(shí)添加了一個(gè)異常代碼參數(shù) source,它可以用來(lái)標(biāo)識(shí)異常的代碼;另外一個(gè)函數(shù)為MyException(string source,string message),它也是繼承于基類異常函數(shù)MyException(),也在重載記錄異常函數(shù)時(shí)添加了一個(gè)異常代碼參數(shù)。并且在異常處理的代
39、碼內(nèi)部調(diào)用日志類函數(shù)將異常信息持久化。 4.1.5 系統(tǒng)通用頁(yè)面設(shè)計(jì)當(dāng)用戶登陸系統(tǒng)之后,進(jìn)入系統(tǒng)平臺(tái)的主頁(yè)面,它由Main.aspx、Spliter.aspx、Left.aspx和Top.aspx4個(gè)頁(yè)面組成。并且可以根據(jù)自己的喜好,選擇不同的頁(yè)面風(fēng)格,系統(tǒng)將自動(dòng)加載用戶設(shè)置的風(fēng)格。如圖7所示。圖7 主界面4.2 權(quán)限系統(tǒng)模塊的實(shí)現(xiàn)系統(tǒng)主功能模塊包括用戶信息管理,角色管理,權(quán)限管理,資源與權(quán)限的綁定,用戶與角色的綁定等。4.2.1 用戶信息管理和角色綁定本系統(tǒng)中的起始頁(yè)面為L(zhǎng)ogin.aspx,如圖8所示。圖8 系統(tǒng)登陸界面用戶點(diǎn)擊【登錄】時(shí),系統(tǒng)初始化命名空間Njj.Accounts.bus
40、下類User的一個(gè)user對(duì)象,將user賦予當(dāng)前上下文user對(duì)象。根據(jù)用戶當(dāng)前的身份標(biāo)識(shí)中的密碼驗(yàn)證用戶身份的有效性,若成功則設(shè)置用戶系統(tǒng)登陸,添加日志,添加用戶的用戶信息到Session中,并且加載用戶設(shè)置的界面風(fēng)格,最后跳轉(zhuǎn)到應(yīng)用系統(tǒng)操作主界面。該程序代碼如下所示。AccountsPrincipal newUser = AccountsPrincipal.ValidateLogin(userName, Password); /根據(jù)用戶名和密碼初始化用戶標(biāo)識(shí),實(shí)現(xiàn)iprincipal接口 if (newUser = null) this.lblMsg.Text = 登陸失?。?+ use
41、rName; else User currentUser = new NJJ.Accounts.Bus.User(newUser);/根據(jù)用戶標(biāo)識(shí)初始化用戶對(duì)象 Context.User = newUser; 將當(dāng)前上下文用戶標(biāo)識(shí)設(shè)為新用戶 if (SiteIdentity)User.Identity).TestPassword(Password) = 0) /檢測(cè)用戶密碼 this.lblMsg.Text = 你的密碼無(wú)效!; else FormsAuthentication.SetAuthCookie(userName, false); /設(shè)置用戶登陸 NJJ.TreeAndLog.Tre
42、eAndLogManage log = new NJJ.TreeAndLog.TreeAndLogManage(); log.AddLog(DateTime.Now.ToString(), 用戶登陸, User.Identity.Name, 1);/添加日志 SessionUserInfo = currentUser; /session保存當(dāng)前用戶信息 SessionStyle = currentUser.Style; /session保存用戶設(shè)置的界面風(fēng)格 if (SessionreturnPage != null) string returnpage = SessionreturnPage
43、.ToString(); SessionreturnPage = null; Response.Redirect(returnpage); else Response.Redirect(main.htm); 用戶管理頁(yè)面為:UserAdmin.aspx,界面如圖9所示。用戶角色分配界面如圖10所示。圖9 用戶管理圖10 角色分配頁(yè)面初始化時(shí)調(diào)用函數(shù)user對(duì)象的GetAllUsers()方法獲取所有用戶數(shù)據(jù)并綁定到datagrid中。點(diǎn)擊圖中的修改角色鏈接可進(jìn)入用戶與角色綁定界面。4.2.2 角色管理和權(quán)限綁定角色管理和權(quán)限綁定頁(yè)面主要為RoleAdmin.aspx和EditRole.aspx
44、,主要實(shí)現(xiàn)對(duì)增加新的角色、修改角色、刪除角色,和角色對(duì)象權(quán)限的分配功能。如圖11,圖12所示。圖11 角色管理圖12 編輯角色信息RoleAdmin.aspx頁(yè)面調(diào)用了命名空間Njj.Accounts.bus下Role類對(duì)象的相關(guān)方法,GetRoleList()得到所有的角色列表,Create()建立新角色。EditRole.aspx中,首先listbox中綁定某類別權(quán)限下的所有權(quán)限,點(diǎn)擊增加權(quán)限按鈕調(diào)用Role類對(duì)象的AddPermission()向角色分配對(duì)應(yīng)的權(quán)限。4.2.3 權(quán)限管理 權(quán)限管理主要實(shí)現(xiàn)權(quán)限類別及權(quán)限命名的管理,如圖13所示。代碼如下所示。int CategoryId =
45、 int.Parse(this.ClassList.SelectedValue); DataSet PermissionsList = AccountsTool.GetPermissionsByCategory(CategoryId); this.DataGrid1.DataSource = PermissionsList; this.DataGrid1.DataBind();圖13 權(quán)限管理本模塊包含權(quán)限類別的添加,修改,刪除,以及類別下子權(quán)限的添加,修改,刪除等功能,主要針對(duì)命名空間下Njj.Accounts.Bus下的PermissionCategories和Permissions類進(jìn)行
46、操作。4.2.4 系統(tǒng)資源管理和權(quán)限綁定及菜單操作系統(tǒng)資源管理主頁(yè)面為:TreeList.aspx和add.aspx,如圖14,15所示。此模塊負(fù)責(zé)添加系統(tǒng)可訪問的URL資源和菜單模塊的操作。添加菜單時(shí)可以和對(duì)應(yīng)的權(quán)限相綁定,以動(dòng)態(tài)顯示用戶菜單。對(duì)于對(duì)應(yīng)的URL文件可執(zhí)行過濾功能,權(quán)限不夠的用戶將拒絕進(jìn)入。圖14 系統(tǒng)資源管理圖15 添加資源并綁定權(quán)限主要代碼如下所示。NJJ.TreeAndLog.TreeAndLogManage sm = new NJJ.TreeAndLog.TreeAndLogManage(); DataTable dt = sm.GetTreeList().Tables
47、0; this.listTarget.Items.Clear(); /加載菜單選項(xiàng)到下拉列表中 this.listTarget.Items.Add(new ListItem(根目錄, 0); DataRow drs = dt.Select(ParentID= + 0); /循環(huán)讀取,添加. foreach (DataRow r in drs) string nodeid = rNodeID.ToString(); string text = rText.ToString(); /string parentid=rParentID.ToString(); /string permissionid
48、=rPermissionID.ToString(); text = + text; this.listTarget.Items.Add(new ListItem(text, nodeid); int sonparentid = int.Parse(nodeid); string blank = ; BindNode(sonparentid, dt, blank); this.listTarget.DataBind(); /綁定父類菜單 /讀取所有權(quán)限 DataTable tabcategory = NJJ.Accounts.Bus.AccountsTool.GetAllCategories().Tables0; int rc = tabcategory.Rows.Count; for (int n = 0; n rc; n+) string CategoryID = tabcategory.RowsnCategoryID.ToString(); string CategoryName = tabcategory.RowsnDescription.ToString(); CategoryName = + CategoryName;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生豬養(yǎng)殖與農(nóng)業(yè)產(chǎn)業(yè)扶貧合作協(xié)議
- 二零二五年度制造業(yè)工傷責(zé)任保險(xiǎn)合同
- 2025年度男方道歉夫妻共同生活保證協(xié)議
- 2025年度飯店短期勞務(wù)合同-客房服務(wù)員職業(yè)健康與安全協(xié)議
- 二零二五年度物業(yè)公司員工勞動(dòng)合同(含社區(qū)文化活動(dòng))
- 監(jiān)理技術(shù)服務(wù)合同
- 綠色數(shù)據(jù)中心建設(shè)運(yùn)營(yíng)合同
- 環(huán)境影響評(píng)估結(jié)果展示表
- 股份制企業(yè)股權(quán)分配與管理制度文書
- 財(cái)務(wù)與成本控制管理細(xì)則
- 酒店幕墻工程單元板塊幕墻軌道吊裝方案
- 裝飾材料與構(gòu)造(共153張PPT)
- 職業(yè)健康安全交底
- GB∕T 28610-2020 甲基乙烯基硅橡膠
- GB∕T 7588.1-2020 電梯制造與安裝安全規(guī)范 第1部分:乘客電梯和載貨電梯
- 4.昆蟲備忘錄 課件(共15張PPT)
- DB37∕T 5191-2021 高延性混凝土加固技術(shù)規(guī)程
- 2022年全省公訴業(yè)務(wù)知識(shí)考試參考答案
- 鎮(zhèn)政府(街道辦事處)辦公大樓平面圖
- 軟壓光機(jī)計(jì)算說(shuō)明
- 森林防火安全責(zé)任書(施工隊(duì)用)
評(píng)論
0/150
提交評(píng)論