国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ODAC的權(quán)限管理機(jī)制

2017-01-21 21:48:29湯俊蘭潘永才汪磊
物聯(lián)網(wǎng)技術(shù) 2016年12期

湯俊蘭++潘永才++汪磊

摘 要:權(quán)限管理作為信息管理系統(tǒng)中必不可少的一部分,已經(jīng)受到越來(lái)越多的人重視。文中主要對(duì)權(quán)限管理的基本概念以及實(shí)現(xiàn)方法做了概要介紹,并結(jié)合作者在畢節(jié)煤炭稅源專業(yè)化管理平臺(tái)系統(tǒng)開(kāi)發(fā)過(guò)程中的實(shí)際應(yīng)用做了詳細(xì)說(shuō)明。

關(guān)鍵詞:ODAC;用戶管理;角色管理;站點(diǎn)地圖;權(quán)限管理

中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)12-00-02

0 引 言

隨著信息化的不斷發(fā)展,基于Web的信息管理系統(tǒng)越來(lái)越普及。B/S體系結(jié)構(gòu)因其可擴(kuò)展性好、維護(hù)簡(jiǎn)便、成本較低、適用范圍廣,被大量應(yīng)用于各種信息管理系統(tǒng),是當(dāng)今主流的發(fā)展方向。為了保證數(shù)據(jù)的安全性,應(yīng)防止非法用戶進(jìn)入系統(tǒng)獲取數(shù)據(jù)或修改數(shù)據(jù),控制合法用戶的訪問(wèn)權(quán)限。權(quán)限管理作為信息管理系統(tǒng)的重要組成部分,有效實(shí)現(xiàn)了對(duì)系統(tǒng)用戶的權(quán)限控制。權(quán)限管理一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源。

目前,實(shí)現(xiàn)權(quán)限管理的安全策略主要有自主訪問(wèn)控制(DAC)、強(qiáng)制訪問(wèn)控制(MAC)以及基于角色的訪問(wèn)控制(RBAC)三種方式。由于DAC的控制策略安全級(jí)別低,主體的權(quán)限過(guò)大,容易導(dǎo)致安全問(wèn)題,而MAC的規(guī)則嚴(yán)苛,應(yīng)用領(lǐng)域窄,因此目前應(yīng)用最為廣泛的是RBAC。該策略在用戶與權(quán)限之間引入了角色的概念,將不同的崗位和工作職責(zé)創(chuàng)建成相應(yīng)的角色,并為每個(gè)角色授予所需的操作權(quán)限,然后根據(jù)用戶的不同職能授予其不同的角色。用戶可根據(jù)角色獲取不同的權(quán)限,對(duì)相應(yīng)的系統(tǒng)資源進(jìn)行操作。該設(shè)計(jì)模式在很大程度上降低了權(quán)限管理的復(fù)雜度,減少了管理成本。例如當(dāng)一個(gè)應(yīng)用系統(tǒng)有m個(gè)用戶,且每個(gè)用戶都要獲得相同的n個(gè)操作權(quán)限,那么管理員為這些用戶授權(quán)的方式有以下兩種:

(1)直接給每個(gè)用戶授予權(quán)限,需要m×n次操作;

(2)創(chuàng)建一個(gè)可以同時(shí)擁有n個(gè)權(quán)限的角色,將這n個(gè)權(quán)限授予該角色,然后將該角色分別授予m個(gè)用戶,共計(jì)需要m+n次操作。

顯而易見(jiàn),第二種方法更為高效,當(dāng)m和n的值越大,這兩種方法的操作成本差距越大。由于RBAC更節(jié)約用戶權(quán)限管理的成本,本文主要在基于角色的安全訪問(wèn)控制的基礎(chǔ)上探討如何使用ODAC實(shí)現(xiàn)權(quán)限管理。

1 ODAC技術(shù)概述

ODAC(Oracle Data Access Components,ODAC)是一種用來(lái)存取Oracle關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的非可視化組件。ODAC使用Oracle Call Interface (OCI)可使編譯生成的應(yīng)用程序非常小。此外,ODAC的Net選項(xiàng)支持無(wú)需在客戶機(jī)上安裝Oracle客戶端即可連接到Oracle。因此只需要TCP/IP協(xié)議的支持即可運(yùn)行使用 ODAC Net應(yīng)用程序。ODAC的對(duì)象模型如圖1所示。

2 使用ODAC實(shí)現(xiàn)權(quán)限管理

2.1 用戶權(quán)限管理

實(shí)現(xiàn)應(yīng)用系統(tǒng)的權(quán)限管理必須先實(shí)現(xiàn)用戶管理和角色管理。用戶管理即對(duì)需要進(jìn)入系統(tǒng)用戶的基本信息進(jìn)行增、刪、改、查操作。用戶登錄、連接數(shù)據(jù)庫(kù)查找是否存在用戶信息,若存在,則對(duì)用戶信息進(jìn)行驗(yàn)證,判斷其用戶名、密碼是否正確,從而判定該用戶是否可以成功登錄。用戶與角色之間緊密聯(lián)系,一個(gè)用戶可以擁有多個(gè)角色,一個(gè)角色也可以賦給多個(gè)用戶,他們之間是多對(duì)多的關(guān)系,如圖2所示。

用戶登錄系統(tǒng)后,通過(guò)獲取到的用戶名查找該用戶所對(duì)應(yīng)的角色。角色可以看成是具有特定權(quán)限的用戶集合,一個(gè)角色可以被賦予多個(gè)權(quán)限,一個(gè)權(quán)限也可以分屬不同的角色,他們之間也是多對(duì)多的關(guān)系,如圖3所示。

用戶權(quán)限管理主要解決兩個(gè)任務(wù),即身份驗(yàn)證和使用權(quán)限。身份驗(yàn)證即確定訪問(wèn)網(wǎng)站的用戶身份,解決“用戶是誰(shuí)”的問(wèn)題,相當(dāng)于用戶管理。使用權(quán)限即在用戶身份確定之后,授予他一定的權(quán)限,允許他使用特定的服務(wù)解決“用戶能干什么”的問(wèn)題,相當(dāng)于角色管理。

2.2 使用ODAC與XML文件實(shí)現(xiàn)權(quán)限管理

由于ODAC相當(dāng)于一個(gè)訪問(wèn)Oracle數(shù)據(jù)庫(kù)的客戶端,開(kāi)發(fā)過(guò)程中可選用ODAC連接數(shù)據(jù)庫(kù)。權(quán)限管理主要依靠TreeView與TreeList,并結(jié)合對(duì)應(yīng)的XML文件實(shí)現(xiàn)。用戶登錄系統(tǒng)后,獲取該用戶所對(duì)應(yīng)的角色并存放于數(shù)組。然后逐個(gè)掃描各節(jié)點(diǎn)的訪問(wèn)權(quán)限,并與數(shù)組中存放的角色信息逐一比對(duì),若符合要求即可訪問(wèn),否則系統(tǒng)提示“無(wú)訪問(wèn)權(quán)限”。部分代碼實(shí)現(xiàn)如下:

public void VistTree(TreeNodeCollection ns)

{

if (ns.Count == 0)

return;

if (Page.User.Identity.IsAuthenticated)

{

string[] rs = HS.UserFoundation.GetRoleName(HS.UserFoundation.getUserName

(Page.User.Identity.Name.ToString()));

foreach (TreeNode nd in ns)

{

string info = null;

if ((nd.Text.Length > 0) && (nd.NavigateUrl.Length > 0))

{

if (rs.Length > 0)

{

string role = nd.Value.ToString();

if (role != null && role.Length > 2)

{

bool isPermission = false;

for (int i = 0; i < rs.Length; i++)

{

if (role == "所有人")

{

isPermission = true;

break;

}

else

{

if (role.Contains("ALL" + rs[i] + "ALL"))

{

isPermission = true;

break;

}

else

{

info = info + "【" + role.Replace("ALL"," ") + "】 "; }

}

}

if (!isPermission)

{

nd.NavigateUrl = "#";

nd.ImageUrl = "~/images/false116.gif";

nd.ToolTip ="無(wú)權(quán)限訪問(wèn)該頁(yè)面。";

nd.Target = "_self";

}

}

}

}

}

}

return;

}

2.3 ODAC結(jié)合站點(diǎn)地圖實(shí)現(xiàn)權(quán)限管理

站點(diǎn)地圖又稱為網(wǎng)站地圖,是指當(dāng)頁(yè)面較多時(shí),可以方便的知道當(dāng)前所在位置,類似于普通地圖,標(biāo)示出當(dāng)前位置。站點(diǎn)地圖能夠以頁(yè)面形式展示給用戶,頁(yè)面中列出網(wǎng)站的整體結(jié)構(gòu),放置了網(wǎng)站上所有頁(yè)面的鏈接,方便用戶找到自己想要獲取的信息。

使用ODAC結(jié)合站點(diǎn)地圖實(shí)現(xiàn)權(quán)限管理的具體方法如下:

(1)首先執(zhí)行Membership腳本。在安裝ODAC之后會(huì)生成InstallAllOracleASPNETProviders.sql,執(zhí)行該腳本即可。

(2)添加4.0版本的oracle.web.dll引用,并修改web.config,配置連接字符串、配置Membership、配置RoleManager、配置SiteMap、配置Profile等相關(guān)參數(shù)即可。

(3)靈活應(yīng)用Memu控件和配置文件實(shí)現(xiàn)對(duì)應(yīng)于不同用戶的不同導(dǎo)航菜單。其中,siteMap的具體配置如下所示:

type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"

siteMapFile="~/Web.sitemap"/>

3 結(jié) 語(yǔ)

本文采用ODAC作為連接Oracle數(shù)據(jù)庫(kù)的客戶端,通過(guò)結(jié)合XML文件以及結(jié)合站點(diǎn)地圖的方式實(shí)現(xiàn)權(quán)限管理。目前,更多的人采用結(jié)合站點(diǎn)地圖的方式實(shí)現(xiàn)該功能。權(quán)限管理的正確實(shí)現(xiàn)以及高效工作為應(yīng)用系統(tǒng)尤其是信息管理應(yīng)用系統(tǒng)提供了安全保障。

參考文獻(xiàn)

[1]鄭歆.權(quán)限管理在成績(jī)管理系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)[J].寧德師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2015,27(4):444-448.

[2]唐小新.用ODAC技術(shù)實(shí)現(xiàn)MELINETSII數(shù)據(jù)導(dǎo)出的開(kāi)發(fā)[J].現(xiàn)代圖書情報(bào)技術(shù),2008(11):86-89.

[3]彭耘,張立平.通用權(quán)限管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].教育教學(xué)論壇,2014(25):154-155.

[4]華英.通用權(quán)限管理系統(tǒng)的研究與實(shí)現(xiàn)[J].科技風(fēng),2015(22):82.

[5]劉麗欽.通用、動(dòng)態(tài)權(quán)限管理模型的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件,2016,37(3):94-98.

[6]吉東,崔忠偉,馬虹.基于Web的高校團(tuán)委信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2016,6(10):112-113.

[7]婁帥.基于達(dá)夢(mèng)數(shù)據(jù)庫(kù)增強(qiáng)型權(quán)限管理機(jī)制的研究[D].武漢:華中科技大學(xué),2011.

[8]邱偉.基于MVC+ORACLE+ODAC的公司業(yè)務(wù)數(shù)據(jù)管理系統(tǒng)[D]. 青島:青島理工大學(xué),2015.

昌平区| 虎林市| 松原市| 富源县| 宜宾县| 新蔡县| 宝山区| 武威市| 清镇市| 容城县| 肃宁县| 大同县| 兰溪市| 连平县| 惠来县| 吉隆县| 宜兰县| 米泉市| 乌海市| 苗栗县| 柳州市| 西乌珠穆沁旗| 丹江口市| 来宾市| 闽侯县| 民勤县| 曲沃县| 揭西县| 共和县| 上高县| 达日县| 新乐市| 闸北区| 建昌县| 邵武市| 兰考县| 白朗县| 封开县| 洛宁县| 鄂托克前旗| 伊春市|