ASP.NET論文教務管理平臺-權限及公共模塊設計與開發(fā)_第1頁
ASP.NET論文教務管理平臺-權限及公共模塊設計與開發(fā)_第2頁
ASP.NET論文教務管理平臺-權限及公共模塊設計與開發(fā)_第3頁
ASP.NET論文教務管理平臺-權限及公共模塊設計與開發(fā)_第4頁
ASP.NET論文教務管理平臺-權限及公共模塊設計與開發(fā)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、教務管理平臺-權限及公共模塊設計與開發(fā)論文作者姓名:申請學位專業(yè):申請學位類別:指導教師姓名(職稱):論文提交日期:教務管理平臺-權限及公共模塊設計與開發(fā)摘 要隨著教育改革的不斷深化,高等院校的建設與發(fā)展對國民整體素質的提高起著越來越重要的作用,建立一套能夠適應這些改變的行政管理方案也就顯得尤為重要。對于教務處來說,將信息技術用于校務管理中便是迫切的要求。教務系統(tǒng)中的用戶數(shù)量眾多,需要具有不同的權限,以實現(xiàn)不同的應用。本論文介紹了開發(fā)背景,開發(fā)平臺,并基于需求分析實現(xiàn)了教務管理平臺中基于角色控制的權限系統(tǒng)(RBAC)及公共模塊的設計與開發(fā)。RBAC實現(xiàn)了用戶與訪問權限的邏輯分離,更符合教務平臺

2、的用戶、數(shù)據(jù)和應用特征;在公共模塊中實現(xiàn)了系統(tǒng)通用的日志管理,異常處理,常用類庫方法等。通過設計和應用本系統(tǒng),有效的解決了教務平臺中關于用戶管理與權限操作等方面的問題,為系統(tǒng)公共模塊的實現(xiàn)打下堅實的基礎。通過較為詳盡的功能測試,表明本文的設計內容具有一定的通用性,可用于需要動態(tài)分配權限與角色的管理系統(tǒng)中。關鍵詞: 權限;公共模塊;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;目 錄論文總頁數(shù):22頁1 引言11.1課題背景11.2課題目的11.3課

8、題意義12 系統(tǒng)平臺與相關技術22.1系統(tǒng)架構22.2 開發(fā)平臺介紹22.2.1 Visual Studio 2005介紹22.2.2 SQL Server 2005介紹22.3 開發(fā)技術介紹22.3.1 A22.3.2 RBAC32.3.3 Identity和IPrincipal33 需求分析和數(shù)據(jù)庫設計33.1 應解決的問題33.1.1 基于RBAC的權限系統(tǒng).33.1.2 平臺需要的公共模塊43.2功能需求43.2.1用戶信息管理53.2.2 角色信息管理53.2.3 資源管理53.2.4 用戶角色分配53.2.5 角色權限分配53.2.6 權限操作53.2.7 日志管理53.2.8 異

9、常處理63.2.9 基礎公共類庫63.3非功能需求63.3.1包容性和可擴展性63.3.2系統(tǒng)簡潔,易使用、易維護、適用非計算機專業(yè)人員使用63.3.3充分保護數(shù)據(jù)的一致性63.3.4采用先進成熟的技術,建立實用可靠的系統(tǒng)63.4 數(shù)據(jù)庫設計64 系統(tǒng)設計設計與實現(xiàn)94.1公共模塊設計94.1.1數(shù)據(jù)庫通用類設計94.1.2系統(tǒng)工具通用類設計94.1.3系統(tǒng)日志和樹目錄設計104.1.4系統(tǒng)異常處理124.1.5系統(tǒng)通用頁面設計124.2 權限系統(tǒng)模塊的實現(xiàn)134.2.1 用戶信息管理和角色綁定134.2.2 角色管理和權限綁定154.2.3 權限管理164.2.4 系統(tǒng)資源管理和權限綁定及菜

10、單操作174.2.4 url過濾185 測試20結 論20參考文獻20致 謝21聲 明221 引言教務管理平臺對安全問題有較高的要求,傳統(tǒng)的訪問控制方法DAC(Discretionary Access Control,自主訪問控制模型)、MAC(Mandatory Access Control,強制訪問控制模型)難以滿足復雜的教務管理平臺需求。NIST(National Institute of Standards and Technology,美國國家標準化和技術委員會)于90年代初提出了基于角色的訪問控制方法(RBAC),實現(xiàn)了用戶與訪問權限的邏輯分離,更符合企業(yè)的用戶、組織、數(shù)據(jù)和應用特

11、征。RBAC(角色訪問控制)的基本思想即把整個訪問控制過程分成兩步:訪問權限與角色相關聯(lián),角色再與用戶關聯(lián),從而實現(xiàn)了用戶與訪問權限的邏輯分離。由于RBAC實現(xiàn)了用戶與訪問權限的邏輯分離,因此它極大的方便了權限管理。例如,如果一個用戶的職位發(fā)生變化,只要將用戶當前的角色去掉,加入代表新職務或新任務的角色即可,角色/權限之間的變化比角色/用戶關系之間的變化相對要慢得多,并且委派用戶到角色不需要很多技術,可以由行政管理人員來執(zhí)行,而配置權限到角色的工作比較復雜,需要一定的技術,可以由專門的技術人員來承擔,但是不給他們委派用戶的權限,這與現(xiàn)實中情況正好一致。1.1 課題背景目前國家的教育體制也正處在

12、不斷改革、創(chuàng)新的階段,我國教育部門充分吸取國外優(yōu)秀的教學模式,結合國內多年的辦學經(jīng)驗,逐步探索出適合中國特色的教學形式,因此國家教育部面向各級各類學校開展了全面學分制改革。因此,各院校迫切需要對自己的現(xiàn)有教務管理系統(tǒng)進行改進和提高,根據(jù)國內大學的現(xiàn)在管理模式,結合國際新的思想觀念,在校園網(wǎng)絡環(huán)境下建設先進的、與國際水平接軌的信息化管理平臺。提高學校管理工作的現(xiàn)代化水平,使之成為學校公共信息服務體系的重要組成部分。在這樣的大環(huán)境下,我們選擇了“教務管理平臺”這個系統(tǒng),符合實際需求。其中教務管理平臺中使用人員的復雜性和眾多模塊的管理,需要較為復雜和安全的權限系統(tǒng),另外由于團隊開發(fā)和系統(tǒng)平臺的需要,

13、也需要一定的公共模塊的支持。例如日志管理,異常處理,數(shù)據(jù)驗證和過濾等。1.2 課題目的為教務管理平臺設計一套安全,通用,可擴展的權限系統(tǒng)和系統(tǒng)公共基礎模塊的設計與開發(fā),以應對系統(tǒng)和團隊開發(fā)的需要。1.3 課題意義通過完成本課題系統(tǒng)的設計與開發(fā),為團隊開發(fā)教務管理平臺打下基礎,加快整個教務管理系統(tǒng)的開發(fā)速度,以應對實際教務管理工作自動化的需要,極大提高教務管理工作人員的效率。2 系統(tǒng)平臺與相關技術2.1 系統(tǒng)架構B/S架構的優(yōu)點在于客戶端和服務器通過Intranet進行數(shù)據(jù)交換,客戶端基于統(tǒng)一的WEB瀏覽器,減少了投資,解決了系統(tǒng)維護升級的問題,另外只有極少部分事務邏輯在前端(Browser)實

14、現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),這也就充分保護了數(shù)據(jù)的安全。根據(jù)教務平臺的需求和實際使用情況,由于人員的復雜性和訪問機器的分布性,適合使用B/S架構。2.2 開發(fā)平臺介紹本畢業(yè)設計的命題是教務管理平臺中權限系統(tǒng)和公共模塊的設計和開發(fā),根據(jù)團隊要求和開發(fā)成本選擇了Visual Studio 2005+SQL 2005開發(fā)環(huán)境,使用的語言為c#。2.2.1 Visual Studio 2005介紹Visual Studio 2005 是一系列高效的、智能的開發(fā)工具的統(tǒng)稱,它擁有一個龐大的產品線,包括面向學生、愛好者、初學者的Express版,面向專家、Visual Basic

15、6的Standard版,面向顧問、企業(yè)開發(fā)人員的Professional版和面向架構師的Team System版本。在這些版本中,有些集成了開發(fā)軟件常用到的東西,比如重構、單元測試、類設計器等等,以方便開發(fā)人員快速的設計各類軟件。2.2.2 SQL Server 2005介紹SQL Server 2005 是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能工具提供了企業(yè)級的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫引擎為關系型數(shù)據(jù)和結構化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構建和管理用于業(yè)務的高可用和高性能的數(shù)據(jù)應用程序。SQL Server 2005 數(shù)據(jù)引擎是企業(yè)數(shù)據(jù)管理解決方案的核心。

16、此外 SQL Server 2005 結合了分析、報表、集成和通知功能。2.3 開發(fā)技術介紹2.3.1 AASP.NET是微軟流行的動態(tài)WEB編程技術活動服務器網(wǎng)頁(ASP)的最新版本,但它遠不是傳統(tǒng)ASP簡單升級。ASP.NET和ASP的最大區(qū)別在于編程思維的轉換,ASP.NET是真正的面向對象(Object-oriented),而不僅僅在于功能的增強。在ASP.NET中,Web 窗體頁由兩部分組成:視覺元素(HTML、服務器控件和靜態(tài)文本和該頁的編程邏輯。其中每一部分都存儲在一個單獨的文件中。可視元素在一個擴展名為 .aspx 文件中創(chuàng)建,而代碼位于一個單獨的類文件中,該文件稱作代碼隱藏類

17、文件擴展名為.aspx.vb 或 .aspx.cs。這樣,.aspx文件中存放所有要顯示的元素,aspx.vb或.aspx.cs文件中存放邏輯。2.3.2 RBAC企業(yè)環(huán)境中的訪問控制策略一般有三種:自主型訪問控制方法、強制型訪問控制方法和基于角色的訪問控制方法(RBAC)。其中,自主式太弱,強制式太強,二者工作量大,不便于管理。基于角色的訪問控制方法是目前公認的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法。其顯著的兩大特征是:1.減小授權管理的復雜性,降低管理開銷;2.靈活地支持企業(yè)的安全策略,并對企業(yè)的變化有很大的伸縮性。基于角色的訪問控制RBAC作為一種靈活和直觀的訪問控制技術在20世紀90

18、年代迅速發(fā)展起來,RBAC通過引入角色的新概念來實施訪問控制策略。不同的角色和它所應具有的權限許可互相聯(lián)系,用戶作為某些角色的成員,獲得角色所擁有的權限。角色可以根據(jù)實際的單位或組織的不同工作職能和權限來劃分,依據(jù)用戶所承擔的不同權利和義務來授權相應的角色,對于一個存在大量用戶和權限的權限分配系統(tǒng)來說,從用戶到角色的管理,簡化了權限分配的復雜性,提高了安全管理的效率和質量。2.3.3 Identity和IPrincipalPrincipal對象是實現(xiàn)了IPrincipal接口的類的實例,這些對象用來表示用戶,并且包括了用戶的身份信息。對于每一個線程來說都與一個principal對象相關聯(lián)。這個

19、principal對象包括了表示運行當前線程的用戶的identity對象。3 需求分析和數(shù)據(jù)庫設計3.1 應解決的問題3.1.1 基于RBAC的權限系統(tǒng).1 用戶(user)和角色(role)用戶指訪問系統(tǒng)中的資源的主體,一般為人,也可為 Agent 等智能程序。角色指應用領域內一種權力和責任的語義綜合體,可以是一個抽象概念,也可以是對應于實際系統(tǒng)中的特定語義體,比如組織內部的職務等。針對角色屬性的不同,某些模型中將角色進一步細分為普通角色和管理員角色(可理解為全局角色)。2 許可(Permissions)和權限(Permission)許可描述了角色對計算機資源的訪問和操作所具有的權限,其反映

20、的是授權的結果。比如授予某個角色對計算機資源有讀的權限,則代表了一個許可的存在,這個許可表示:角色獲取了對計算機資源的讀許可。針對操作來說,其描述的是許可和操作之間的一種關聯(lián)關系,而這層關系則表示了某一角色對某一操作所具有的權限及權限狀態(tài)。3 角色和指派(Assignment)指派包含兩個方面,用戶指派和許可指派。用戶指派表示的是,將用戶指派給特定的角色。許可指派表示的是為角色指派計算機資源的訪問和操作許可。3.1.2 平臺需要的公共模塊1日志管理2異常處理3加密模塊及字符串驗證與過濾等公共模塊。3.2 功能需求按照教務平臺RBAC權限系統(tǒng)的需要,和相關公共基礎模塊的需要,有如下的功能需求。如

21、圖1所示。權限系統(tǒng)及公共模塊用戶管理角色管理權限管理資源管理日志管理異常處理公共類庫圖1 系統(tǒng)功能圖RBAC中用戶,角色,權限,資源之間的關系如圖2所示。用戶管理角色管理權限管理資源管理圖2 RBAC關系圖3.2.1 用戶信息管理用戶是權限的擁有者或主體。用戶和權限實現(xiàn)分離,通過授權管理進行綁定。用戶信息管理主要提供教務管理平臺相關使用人員的信息的管理,包括添加,刪除,修改等相關操作。3.2.2 角色信息管理角色是權利和責任的標識,角色信息管理主要提供教務管理平臺相關使用人員所屬角色信息的管理,包括添加,刪除,修改等相關操作。角色和權限管理起來后,就擁有了一定的資源操作權力。3.2.3 資源管

22、理資源管理主要提供教務管理平臺中各個功能模塊可訪問資源的管理,包括各種資源相關權限的添加,刪除,修改等相關操作。資源包括各種操作和可訪問的頁面等。3.2.4 用戶角色分配實現(xiàn)用戶和角色之間的關聯(lián)關系映射。在用戶信息列表中,選擇要分配角色的用戶,單擊列表中的用戶名,進入分配角色頁面所示的窗口。在為用戶分配角色的窗口中,主要是通過職能范圍來確定用戶的權限。每一個用戶在每一個職能范圍中均有一個默認的角色,并可以瀏覽該職能域中密級為“公開”的數(shù)據(jù)元。為用戶分配角色主要就是修改選定的用戶在每一個職能范圍中的角色,以及在每個職能范圍中可以操作的數(shù)據(jù)元的密級。3.2.5 角色權限分配實現(xiàn)權限操作和角色之間的

23、關聯(lián)關系映射。角色描述用戶的職能,權限是可訪問資源的標識,給指定的角色分配權限,使角色具有了真正意義上的職能范圍。3.2.6 權限操作完成資源和權限之間的綁定。可訪問的資源或操作需要一個標識來標明,權限用通俗的語言來描述這種可用操作。例如用戶查看某個列表,“查看”就代表了權限,而“列表“就是資源。3.2.7 日志管理日志是每個系統(tǒng)必不可少的東西,教務平臺中用戶的登陸信息,操作信息或異常信息都需要保存,以方便管理員的調用。日志管理主要完成對系統(tǒng)相關各種日志的記錄和管理,將信息持久化保存。3.2.8 異常處理異常處理是每個系統(tǒng)必備的,自定義異常有助于把系統(tǒng)的錯誤信息按照自己定義的方式來處理,教務平

24、臺中把異常信息的保存進日志系統(tǒng)中,方便系統(tǒng)管理員查看,以及時修補系統(tǒng)存在的問題。3.2.9 基礎公共類庫完成相關系統(tǒng)基本類庫的設計。涉及到數(shù)據(jù)庫操作,相關javascript操作,字符串過濾和編碼解碼,分頁等。這類方法通常具有一般的通用性,以方便教務平臺各模塊的調用。3.3 非功能需求3.3.1 包容性和可擴展性系統(tǒng)應具有較好的可擴展性和包容性。系統(tǒng)的可擴展性應包括能接納已有的系統(tǒng)和在今后系統(tǒng)軟硬件擴展時,能有效地保護已有的投資。特別是在應用需求變化時(應用與系統(tǒng)的需求往往提不全或者經(jīng)常會變化),有一個較好的應用平臺,能容易地加以調整。系統(tǒng)易于擴充升級,既能滿足當前業(yè)務的需求,又為今后的擴充留

25、有空間。3.3.2 系統(tǒng)簡潔,易使用、易維護、適用非計算機專業(yè)人員使用系統(tǒng)的設計需要考慮用戶的計算機水平,做到簡單易用,沒有計算機專業(yè)背景的用戶也可以輕松的使用本系統(tǒng)完成復雜的排課工作。3.3.3 充分保護數(shù)據(jù)的一致性權限系統(tǒng)中的用戶,角色,權限,資源等多種信息。各信息存在著一定的關聯(lián)關系。權限系統(tǒng)所使用的信息需要數(shù)據(jù)的高度一致,因此,非常有必要在設計時將數(shù)據(jù)的一致性作為一個重點來考慮。3.3.4 采用先進成熟的技術,建立實用可靠的系統(tǒng)本系統(tǒng)的建設目標是否能實現(xiàn),系統(tǒng)整個投資能否發(fā)揮應有的效益,最終將取決于該系統(tǒng)是否可靠實用。為此,系統(tǒng)應采用成熟可靠的技術,應貫徹產品化的設計原則和實施方法。同

26、時,系統(tǒng)的起點要高,而不是基于淘汰的技術,系統(tǒng)的建立應適應未來技術發(fā)展的趨勢。3.4 數(shù)據(jù)庫設計根據(jù)需求分析中的各種模塊,設計了如下的數(shù)據(jù)庫。l 用戶表 Accounts_Users用來存儲系統(tǒng)用戶。表的字段說明如表1所示。表1 Accounts_Users(用戶表)序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1UserIDint4用戶ID2UserNamevarchar50用戶名3Passwordbinary20密碼4TrueNamevarchar50真實姓名5Sexchar2性別6Phonevarchar20電話7Emailvarchar100郵箱8Activitybit1是否激活9Styl

27、eint4頁面風格l 用戶角色表(Account_UserRoles) ,主要用于對應某用戶和所屬角色的對應關系,字段說明如表2所示。表2 Accounts_UserRoles序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1UserIDInt4用戶ID2RoleIDInt4角色IDl 角色表(Accounts_Roles),用來存儲各種角色信息,字段說明如表3所示。表3 Accounts_Roles序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1RoleIDInt4角色ID2DescriptionVarchar255角色說明l 角色權限表用來存儲角色所擁有的權限. 表的字段說明如表4所示。表4 Acc

28、ounts_RolePermissions序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1RoleIDInt4角色ID2PermissionIDInt4權限IDl 權限表(Account_Permissions)用來存儲各種可用權限。表的字段說明如表5所示。表5 Accounts_Permissions序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1PermissionIDInt4權限ID2Descriptionvarchar255權限說明3CategoryIDInt4權限類別l 權限類別(Accounts_PermissionsCategories)存儲權限的類別,表的字段說明如表6所示。表6 Ac

29、counts_PermissionCategories序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1CategoryIDInt4類別ID2DescriptionVarchar255類別說明l 目錄樹(S_Tree),存放系統(tǒng)的目錄樹,可無限添加.表的字段說明如表7所示。表7 S_Tree序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1NodeIDInt4結點ID2Textvarchar100文本3ParentIDint4母結點ID4ParentPathvarchar50母結點ID5Locationvarchar50目錄所在位置6OrderIDint4順序號7commentvarchar50說明8Ur

30、lvarchar100URL9PermissionIDint4權限ID10ImageUrlvarchar100圖片URLl 日志(S_Log),存放系統(tǒng)日志. 如表8所示。表8 S_Log序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1IDbigint82CategoryIDint4類別ID3UserIDvarchar50用戶ID4datetimedatetime8時間loginfovarchar500信息5IpAddressvarchar500用戶IPl 日志類別(Log_Category),日志類別,如表9所示。表9 Log_Category序號列名數(shù)據(jù)類型長度標識主鍵允許空字段說明1Cate

31、goryIDint4類別ID2CategoryNamevarchar50類別名稱l 數(shù)據(jù)庫關系圖圖3 數(shù)據(jù)庫關系圖數(shù)據(jù)庫表之間的關系如圖3所示。4 系統(tǒng)設計與實現(xiàn)4.1 公共模塊設計系統(tǒng)公共模塊包括系統(tǒng)數(shù)據(jù)庫操作,系統(tǒng)通用工具類,樹目錄管理,系統(tǒng)通用頁面設計。4.1.1 數(shù)據(jù)庫通用類設計數(shù)據(jù)庫通用類由類DbManagerSQL實現(xiàn),它是應用程序通過ADO.NET訪問數(shù)據(jù)庫的基礎類,也是應用程序實現(xiàn)上層業(yè)務邏輯的基礎.該類主要封裝了創(chuàng)建訪問數(shù)據(jù)庫的一些對象或方法,如數(shù)據(jù)庫連接對象等.以及執(zhí)行數(shù)據(jù)庫操作的必需對象。該類通過構造函數(shù)讀取config配置文件里的數(shù)據(jù)庫連接,類方法有執(zhí)行簡單SQL語句,

32、執(zhí)行存儲過程,事務處理,返回datareader和dataset等操作方法。4.1.2 系統(tǒng)工具通用類設計在本系統(tǒng)中,應用程序定義了幾個工具通用類,它們在整個應用過程中被應用了很多次,因此才能把它們集中在一起作為系統(tǒng)工具通用類。系統(tǒng)工具類通用類由命名空間Njj.Common下的各種類提供。ConfigHelper.cs提供了關于讀取webconfig中字符串值的各種方法。MessageBox.cs中封裝了向瀏覽器寫入javascript代碼和彈出對話框窗口的各種操作.PageValidate.cs中提供了各種數(shù)據(jù)驗證函數(shù)和字符串過濾,html編碼解碼等各種操作。Njj.PageControl里

33、的各種類提供了一些通用的頁面自定義控件的操作,分頁的樣式等。4.1.3 系統(tǒng)日志和樹目錄設計命名空間Njj.TreeAndLog下的TreeAndLogManage類封裝了關于日志的相關操作和目錄列表的樹相關操作。日志操作有添加,修改,刪除日志類別的功能和添加,修改,刪除日志的功能。日志主要記錄系統(tǒng)用戶的各種可記錄操作,以及系統(tǒng)異常發(fā)生時的堆棧信息,以方便管理員的管理。主要記錄內容有用戶,日志記錄時間,日志錯誤信息,用戶IP,日志類別等。日志錯誤信息包含堆棧錯誤或相關用戶的操作記錄。系統(tǒng)主要界面如圖4,圖5所示。圖4 日志詳細信息圖5 日志管理圖6 樹狀菜單目錄樹列表調用SysNode樹子結點

34、對象來對數(shù)據(jù)庫S_Tree執(zhí)行各種添加,刪除,修改操作,根據(jù)用戶角色調用其相關的權限列表,動態(tài)顯示菜單。界面如圖6所示。代碼如下所示。DataRow drs = dt.Select(ParentID= + 0);/選出所有子節(jié)點 /菜單狀態(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 設置 this.TreeView1.Font.Name = 宋體; this.TreeView1.Font.Size = FontUnit.Parse(9); /權限控制菜單 if (permissionid = -1) | (user.HasPermissionID(permissionid)/綁定用戶有權限的和沒設權限的(即公開的菜單) 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;/設置菜單狀態(tài) TreeView1.Nodes.Add(rootnode); int sonparentid = int.Parse(nodeid);/ 子節(jié)點ID CreateNode(framename, sonparentid, rootnode, dt);/遞歸顯示菜單項 4.1.4 系統(tǒng)異常處理

38、系統(tǒng)異常處理有類MyException實現(xiàn),它繼承于系統(tǒng)的異常類Exception,并重載基類的 異常處理函數(shù)MyException().該類中了定義了兩個異常處理函數(shù),其中一個函數(shù)為MyException(string source,string message,Exception inner),該函數(shù)在重載記錄函數(shù)時添加了一個異常代碼參數(shù) source,它可以用來標識異常的代碼;另外一個函數(shù)為MyException(string source,string message),它也是繼承于基類異常函數(shù)MyException(),也在重載記錄異常函數(shù)時添加了一個異常代碼參數(shù)。并且在異常處理的代

39、碼內部調用日志類函數(shù)將異常信息持久化。 4.1.5 系統(tǒng)通用頁面設計當用戶登陸系統(tǒng)之后,進入系統(tǒng)平臺的主頁面,它由Main.aspx、Spliter.aspx、Left.aspx和Top.aspx4個頁面組成。并且可以根據(jù)自己的喜好,選擇不同的頁面風格,系統(tǒng)將自動加載用戶設置的風格。如圖7所示。圖7 主界面4.2 權限系統(tǒng)模塊的實現(xiàn)系統(tǒng)主功能模塊包括用戶信息管理,角色管理,權限管理,資源與權限的綁定,用戶與角色的綁定等。4.2.1 用戶信息管理和角色綁定本系統(tǒng)中的起始頁面為Login.aspx,如圖8所示。圖8 系統(tǒng)登陸界面用戶點擊【登錄】時,系統(tǒng)初始化命名空間Njj.Accounts.bus

40、下類User的一個user對象,將user賦予當前上下文user對象。根據(jù)用戶當前的身份標識中的密碼驗證用戶身份的有效性,若成功則設置用戶系統(tǒng)登陸,添加日志,添加用戶的用戶信息到Session中,并且加載用戶設置的界面風格,最后跳轉到應用系統(tǒng)操作主界面。該程序代碼如下所示。AccountsPrincipal newUser = AccountsPrincipal.ValidateLogin(userName, Password); /根據(jù)用戶名和密碼初始化用戶標識,實現(xiàn)iprincipal接口 if (newUser = null) this.lblMsg.Text = 登陸失?。?+ use

41、rName; else User currentUser = new NJJ.Accounts.Bus.User(newUser);/根據(jù)用戶標識初始化用戶對象 Context.User = newUser; 將當前上下文用戶標識設為新用戶 if (SiteIdentity)User.Identity).TestPassword(Password) = 0) /檢測用戶密碼 this.lblMsg.Text = 你的密碼無效!; else FormsAuthentication.SetAuthCookie(userName, false); /設置用戶登陸 NJJ.TreeAndLog.Tre

42、eAndLogManage log = new NJJ.TreeAndLog.TreeAndLogManage(); log.AddLog(DateTime.Now.ToString(), 用戶登陸, User.Identity.Name, 1);/添加日志 SessionUserInfo = currentUser; /session保存當前用戶信息 SessionStyle = currentUser.Style; /session保存用戶設置的界面風格 if (SessionreturnPage != null) string returnpage = SessionreturnPage

43、.ToString(); SessionreturnPage = null; Response.Redirect(returnpage); else Response.Redirect(main.htm); 用戶管理頁面為:UserAdmin.aspx,界面如圖9所示。用戶角色分配界面如圖10所示。圖9 用戶管理圖10 角色分配頁面初始化時調用函數(shù)user對象的GetAllUsers()方法獲取所有用戶數(shù)據(jù)并綁定到datagrid中。點擊圖中的修改角色鏈接可進入用戶與角色綁定界面。4.2.2 角色管理和權限綁定角色管理和權限綁定頁面主要為RoleAdmin.aspx和EditRole.aspx

44、,主要實現(xiàn)對增加新的角色、修改角色、刪除角色,和角色對象權限的分配功能。如圖11,圖12所示。圖11 角色管理圖12 編輯角色信息RoleAdmin.aspx頁面調用了命名空間Njj.Accounts.bus下Role類對象的相關方法,GetRoleList()得到所有的角色列表,Create()建立新角色。EditRole.aspx中,首先listbox中綁定某類別權限下的所有權限,點擊增加權限按鈕調用Role類對象的AddPermission()向角色分配對應的權限。4.2.3 權限管理 權限管理主要實現(xiàn)權限類別及權限命名的管理,如圖13所示。代碼如下所示。int CategoryId =

45、 int.Parse(this.ClassList.SelectedValue); DataSet PermissionsList = AccountsTool.GetPermissionsByCategory(CategoryId); this.DataGrid1.DataSource = PermissionsList; this.DataGrid1.DataBind();圖13 權限管理本模塊包含權限類別的添加,修改,刪除,以及類別下子權限的添加,修改,刪除等功能,主要針對命名空間下Njj.Accounts.Bus下的PermissionCategories和Permissions類進行

46、操作。4.2.4 系統(tǒng)資源管理和權限綁定及菜單操作系統(tǒng)資源管理主頁面為:TreeList.aspx和add.aspx,如圖14,15所示。此模塊負責添加系統(tǒng)可訪問的URL資源和菜單模塊的操作。添加菜單時可以和對應的權限相綁定,以動態(tài)顯示用戶菜單。對于對應的URL文件可執(zhí)行過濾功能,權限不夠的用戶將拒絕進入。圖14 系統(tǒng)資源管理圖15 添加資源并綁定權限主要代碼如下所示。NJJ.TreeAndLog.TreeAndLogManage sm = new NJJ.TreeAndLog.TreeAndLogManage(); DataTable dt = sm.GetTreeList().Tables

47、0; this.listTarget.Items.Clear(); /加載菜單選項到下拉列表中 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(); /綁定父類菜單 /讀取所有權限 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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論