![權(quán)限設(shè)計功能權(quán)限數(shù)據(jù)權(quán)限_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/0529d7b1-4681-4445-8f7d-9b37954f00a4/0529d7b1-4681-4445-8f7d-9b37954f00a41.gif)
![權(quán)限設(shè)計功能權(quán)限數(shù)據(jù)權(quán)限_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/0529d7b1-4681-4445-8f7d-9b37954f00a4/0529d7b1-4681-4445-8f7d-9b37954f00a42.gif)
![權(quán)限設(shè)計功能權(quán)限數(shù)據(jù)權(quán)限_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/0529d7b1-4681-4445-8f7d-9b37954f00a4/0529d7b1-4681-4445-8f7d-9b37954f00a43.gif)
![權(quán)限設(shè)計功能權(quán)限數(shù)據(jù)權(quán)限_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/0529d7b1-4681-4445-8f7d-9b37954f00a4/0529d7b1-4681-4445-8f7d-9b37954f00a44.gif)
![權(quán)限設(shè)計功能權(quán)限數(shù)據(jù)權(quán)限_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/0529d7b1-4681-4445-8f7d-9b37954f00a4/0529d7b1-4681-4445-8f7d-9b37954f00a45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、網(wǎng)絡(luò)管理系統(tǒng)-權(quán)限管理權(quán)限描述1為什么要有權(quán)限管理1本項目中的權(quán)限管理1權(quán)限設(shè)計2名詞解釋:2權(quán)限系統(tǒng)的核心由以下三部分構(gòu)成:創(chuàng)造權(quán)限,分配權(quán)限,使用權(quán)限2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計3權(quán)限執(zhí)行步驟3msdn說明:asp.net 母版頁和內(nèi)容頁中的事件3項目步驟說明4權(quán)限代碼實現(xiàn)4第一步:檢測登陸和合法url(basemasterpage)4第二步:加載資源和功能菜單加載(masterpage)6第三步:將資源轉(zhuǎn)化為屬性,和錯誤記錄(basepage)7第四步,第五步:頁面初始化數(shù)據(jù),進行綁定(資源管理-editnodeinfo.aspx為例)(page):8權(quán)限描述為什么要有權(quán)限管理權(quán)限管理是web應(yīng)用項
2、目中比較關(guān)鍵的環(huán)節(jié),因為瀏覽器是每一臺計算機都已具備的,如果不建立權(quán)限管理系統(tǒng),那么一個“非法用戶”可以輕而易舉通過瀏覽器訪問web應(yīng)用項目中的所有功能,資源。因此需要權(quán)限管理系統(tǒng)進行權(quán)限檢測,讓經(jīng)過授權(quán)的用戶可以正常合法的使用已授權(quán)的功能,資源,而對那些未授權(quán)的非法用戶拒之門外。本項目中的權(quán)限管理本項目中的權(quán)限管理總的可以分為功能管理和資源管理。在這里我定義了以下關(guān)系:權(quán)限=功能+資源,在后續(xù)出現(xiàn)的權(quán)限均指代的是功能+資源1. 功能管理中的功能體現(xiàn)到本系統(tǒng)中就是對應(yīng)一個網(wǎng)頁(url),或網(wǎng)頁中的一個按鈕2. 資源管理中的資源就是本系統(tǒng)中需要用權(quán)限約束的資源對象,包括鏈路、節(jié)點、設(shè)備,事務(wù)等信
3、息。權(quán)限設(shè)計名詞解釋:a. systemusers:系統(tǒng)用戶,使用功能,資源的平臺用戶。b. groups:用戶組,功能,資源分配的單位與載體。權(quán)限不考慮分配給特定的用戶而給組。c. roles:角色,一定數(shù)量的功能的集合。功能分配的單位與載體,目的是隔離系統(tǒng)用戶(systemusers)與權(quán)限功能(funurl)的邏輯關(guān)系. 權(quán)限系統(tǒng)的核心由以下三部分構(gòu)成:創(chuàng)造權(quán)限,分配權(quán)限,使用權(quán)限1)創(chuàng)建權(quán)限:分兩步,1創(chuàng)建功能;2創(chuàng)建資源a. 創(chuàng)建功能:creator 創(chuàng)造 功能, creator 在設(shè)計和實現(xiàn)系統(tǒng)時會分析,一個子系統(tǒng)或稱為模塊,應(yīng)該有哪些功能,然后將這些功能注冊到相應(yīng)系統(tǒng)模
4、塊中,這里實現(xiàn)就是對url分別注冊到funurl中b. 創(chuàng)建資源:creator 創(chuàng)造 資源,creator 在設(shè)計和實現(xiàn)系統(tǒng)時會分析系統(tǒng)中需要被約束的資源有哪些,然后針對每一種資源,都建立一個組,資源關(guān)系表。2)分配權(quán)限:分兩步,1 功能分配;2 資源分配a. 功能分配: administrator創(chuàng)建角色,創(chuàng)建用戶組,給用戶組分配用戶,將用戶組與角色關(guān)聯(lián),然后administrator將 功能與角色建立關(guān)聯(lián)關(guān)系。這樣就可以達到功能分配,這些操作都由 administrator 來完成的。b.資源分配:administrator利用組,資源關(guān)系表,然后將組和各種資源分別建立關(guān)聯(lián)關(guān)系
5、,這樣就可以達到資源分配3)使用權(quán)限:systemusers使用 administrator 分配給的權(quán)限去使用各個子系統(tǒng)。 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計權(quán)限執(zhí)行步驟msdn說明:asp.net 母版頁和內(nèi)容頁中的事件母版頁和內(nèi)容頁都可以包含控件的事件處理程序。對于控件而言,事件是在本地處理的,即內(nèi)容頁中的控件在內(nèi)容頁中引發(fā)事件,母版頁中的控件在母版頁中引發(fā)事件??丶录粫膬?nèi)容頁發(fā)送到母版頁。同樣,也不能在內(nèi)容頁中處理來自母版頁控件的事件。在某些情況下,內(nèi)容頁和母版頁中會引發(fā)相同的事件。例如,兩者都引發(fā) init 和 load 事件。引發(fā)事件的一般規(guī)則是初始化事件
6、從最里面的控件向最外面的控件引發(fā),所有其他事件則從最外面的控件向最里面的控件引發(fā)。請記住,母版頁會合并到內(nèi)容頁中并被視為內(nèi)容頁中的一個控件,這一點十分有用。下面是母版頁與內(nèi)容頁合并后事件的發(fā)生順序:1. 母版頁控件 init 事件。2. 內(nèi)容控件 init 事件。3. 母版頁 init 事件。4. 內(nèi)容頁 init 事件。5. 內(nèi)容頁 load 事件。6. 母版頁 load 事件。7. 內(nèi)容控件 load 事件。8. 內(nèi)容頁 prerender&
7、#160;事件。9. 母版頁 prerender 事件。10. 母版頁控件 prerender 事件。11. 內(nèi)容控件 prerender 事件。母版頁和內(nèi)容頁中的事件順序?qū)τ陧撁骈_發(fā)人員并不重要。但是,如果您創(chuàng)建的事件處理程序取決于某些事件的可用性,那么您將發(fā)現(xiàn),了解母版頁和內(nèi)容頁中的事件順序很有幫助。項目步驟說明1.basemasterpage init()/一級驗證(登陸,功能url)2.masterpage init()/二級驗證(功能加載,數(shù)據(jù)加載)3.basepage init()/將加載的數(shù)據(jù)重新整理為屬性,錯誤日志記錄
8、4.page init()/頁面中的初始化5.page load() 說明:頁面開始執(zhí)行時,1.先調(diào)用masterpage init(),而masterpage init() 在調(diào)用basemasterpage init().2.調(diào)用page init(),而 page init()在調(diào)用basepage init()3.page load()這樣就形成了上面的五步的驗證順序權(quán)限代碼實現(xiàn)第一步:檢測登陸和合法url(basemasterpage)protected void validate() string root = resolveurl(""); root = ro
9、ot.substring(0, root.length - 1);/獲得網(wǎng)站主目錄 if (object.equals(null, sessionsessionkeys.userid)/登陸檢測 stopcache(); response.write("<script>alert('對不起!你沒有登錄系統(tǒng)或登錄超時,請重新登錄');top.location.href='./login.aspx'</script>"); else /功能檢測 string url = request.apprelativecurrent
10、executionfilepath.trimstart(''); ilist funlist = functionagent.getfunidbyurl(url); if (funlist.count = 0) /檢測到功能(url)不存在,給予提示 response.write("<script>alert('系統(tǒng)中沒有添加此頁面!');top.location.href='" + root + sessionsessionkeys.currenturl.tostring() + "'</scri
11、pt>"); response.end(); else bool status = false; foreach (funurlinfo f in funlist) ilist rolesid = sessionsessionkeys.rolesid as ilist;/獲得角色 if (rolesid != null) /檢測是否有訪問的權(quán)限 status = functionagent.equalbyroleidandfunid(rolesid, f.funid.tostring(); if (status) break;/如果存在就進入訪問 if (!status &am
12、p;& sessionsessionkeys.currenturl != null) /沒有權(quán)限就不能進入 response.write("<script>alert('您沒有訪問此頁面的權(quán)限!');top.location.href='" + root + sessionsessionkeys.currenturl.tostring() + "'</script>"); else if (sessionsessionkeys.currenturl = null) response.redi
13、rect("/login.aspx"); else sessionsessionkeys.currenturl = url;/將當前頁面記錄下來 第二步:加載資源和功能菜單加載(masterpage)功能菜單加載:<uc3:treecontrol id="treecontrol1" runat="server" funid="2" expanddepth="2" width="234px" cssclass="leftmenu02" moudlena
14、me="resourcemanage" />其中treecontrol為用戶控件:private void bindtree() dataset treedataset = null; ilist roleid = sessionsessionkeys.rolesid as ilist;/獲得角色 if (roleid != null) if (object.equals(sessionmoudlename, null) sessionmoudlename = functionagent.get2menufunlist(roleid, funid.tostring()
15、; treedataset = sessionmoudlename as dataset; if (treedataset != null) addnodes(tv2menu.nodes, treedataset, funid); private void addnodes(treenodecollection collection,dataset treedataset, int parentnodeid) datarow rows = treedataset.tables"menudatatable".select("paranetfunid=" +
16、 parentnodeid);/查找當前結(jié)點的所有子結(jié)點 foreach (datarow row in rows) /新建一個臨時結(jié)點 treenode node = new treenode(); node.value = row"funid".tostring(); node.text = row"urlname".tostring(); node.navigateurl =row"url".tostring(); string pid = row"url".tostring(); node.expanded
17、 = true;/默認為展開 /遞歸加入當前結(jié)點的子結(jié)點 addnodes(node.childnodes, treedataset, int.parse(row"funid".tostring(); collection.add(node);/加入到結(jié)點集合中 加載資源:protected override void oninit(eventargs e) base.oninit(e); if (object.equals(sessionsessionkeys.nodesid, null) ilist groupsid = sessionsessionkeys.group
18、sid as ilist; if (groupsid != null) sessionsessionkeys.nodesid = resourceagent.getnodeidsbygroupids(groupsid);/初始化節(jié)點資源 sessionsessionkeys.linksid = resourceagent.getlinkidsbygroupids(groupsid);/初始化鏈路資源 sessionsessionkeys.equipmentsid = resourceagent.getequipmentidsbygroupids(groupsid);/初始化設(shè)備資源 sessi
19、onsessionkeys.portsid = resourceagent.getportidsbygroupids(groupsid);/初始化端口資源 第三步:將資源轉(zhuǎn)化為屬性,和錯誤記錄(basepage) protected override void oninit(eventargs e) userid = getfromsession(sessionkeys.userid) as string; nodesid = getfromsession(sessionkeys.nodesid) as ilist; linksid=getfromsession(sessionkeys.lin
20、ksid) as ilist; equipmentsid =getfromsession(sessionkeys.equipmentsid) as ilist; portsid =getfromsession(sessionkeys.portsid) as ilist; transtypeids =getfromsession(sessionkeys.transtypeids) as ilist; pagename = request.rawurl; userip = request.userhostaddress.tostring(); base.oninit(e);protected vi
21、rtual void showmessage(dcexception dex) /錯誤處理 dex.userid = userid; dex.pagename = pagename; dex.userip = userip; if (string.isnullorempty(dex.msg) dex.msg = dex.message; if (dex.errortype = messagetype.warning) showmessage(dex.msg); else if (dex.msg.equals("正在中止線程。") | dex.msg.equals("thread was being aborted.") return; log.error(dex.tostring();/記錄錯誤信息 /遷移到錯誤頁面 string errpageurl = configurationmanager.appsettings"errorpageurl" dic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年主持人聘合同(2篇)
- 2025年九年級語文教學年終總結(jié)(2篇)
- 2025年云南省鮮花訂購合同(三篇)
- 2025年二年級語文教學工作心得體會模版(3篇)
- 書店裝修小型合同樣本
- 醫(yī)療設(shè)施土方清運合同
- 清真寺裝修合同樣本
- 金華日式屋頂花園施工方案
- 度假別墅裝修合同協(xié)議
- 醫(yī)療藥品冷鏈運輸協(xié)議
- 2024年北師大版八年級上冊全冊數(shù)學單元測試題含答案
- 江蘇省南京市第二十九中2025屆數(shù)學高二上期末學業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 六年級數(shù)學競賽試題及答案(六套)
- 八年級下學期期末考試語文試題(PDF版含答案)
- 臨床診療指南-口腔醫(yī)學分冊
- 浙教版八年級下冊科學第一章 電和磁整章思維導圖
- (正式版)SH∕T 3541-2024 石油化工泵組施工及驗收規(guī)范
- 動物疫病傳染病防控培訓制度
- 美團代運營合同模板
- 初中英語七選五經(jīng)典5篇(附帶答案)
- GB/T 43676-2024水冷預混低氮燃燒器通用技術(shù)要求
評論
0/150
提交評論