亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于角色的訪問控制模型(RBAC)研究

        2019-01-19 08:26:18余楊奎
        計算機技術與發(fā)展 2019年1期
        關鍵詞:分配用戶模型

        余楊奎

        (湛江開放大學,廣東 湛江 524003)

        0 引 言

        在互聯(lián)網(wǎng)高速發(fā)展的今天,資源共享日趨完善,資源共享的同時也要阻止非授權用戶對共享資源的訪問。在Web開發(fā)技術中,訪問控制是為了保護Web系統(tǒng)中存儲和處理信息安全的重要手段,權限配置問題是Web開發(fā)技術重點探討的問題,訪問控制提出了權限配置的關鍵解決方案。

        目前,傳統(tǒng)的訪問控制一般分為兩類:DAC(discretionary access control,自主訪問控制模型)和MAC(mandatory access control,強制訪問控制模型)[1-2]。RBAC模型由Ferraiolo和Kuhn在1992年提出[3-4],并進行了很多研究。1996年,Sandhu等[4]提出了RBAC96模型。2007年,F(xiàn)erraiolo等[3]整體綜合性地對RBAC進行了描述。2014年,美國國家標準技術研究院(national institute of stands and technology,NIST)提出了RBAC標準及其概念和構架的標準定義[5-6]。此后,也有學者擴展了RBAC模型。例如,蔡婷等[7]針對基于角色的訪問控制(RBAC)模型在模擬復雜組織結構和權限繼承關系方面的不足,提出了基于角色擴展的RBAC模型-MR-RBAC;安沛等[8]針對傳統(tǒng)基于角色的訪問控制模型在授權管理上的缺陷,對RBAC模型進行擴展,采用獨立的安全審計,增強了OA系統(tǒng)的安全性與可靠性;蔡婷等[9]提出一種擴展的基于角色的訪問控制ERBAC模型,以解決RBAC在多域云系統(tǒng)的資源使用約束、策略管理和互操作安全性等方面存在的不足。

        RBAC是當今Web服務技術領域受到廣泛關注的授權模型之一,RBAC模型引進了角色的概念,將訪問角色與權限通過多對多關系相聯(lián)系,管理員只需要通過給用戶分配合適的角色,就可以讓用戶與權限相聯(lián)系,用戶通過獲得角色成員的資格來分配對應的訪問權限,用戶權限的更改只需要更改角色即可,而不需要對單個用戶更改權限,系統(tǒng)管理員取消用戶權限,只需要撤銷用戶具有的某個角色,降低了管理員對權限管理的開銷。

        1 ASP.NET技術

        ASP.NET支持Web應用程序開發(fā),運用了.net framework提供的功能,與PHP、JSP構成目前三大主流Web開發(fā)技術。與其他Web開發(fā)技術相比,它打破了不能支持強類型語言編寫的局限,并且支持面向對象編程[10]。采用ASP.NET技術進行開發(fā)的所有Web程序都可以無限制地支持異??刂?、類型安全、繼承和動態(tài)編譯[11]。它使用Visual Studio.NET開發(fā),界面友好,支持多種語言,集頁面、控件、代碼和服務于一體,技術成熟,成為眾多Web開發(fā)者的首選[12]。JSP和PHP雖然開放源代碼,但由于英文資料多,對開發(fā)者要求比較高,不容易上手[13]。

        2 ASP.NET實現(xiàn)RBAC模型設計

        RBAC模型通過多對多關系將角色和權限聯(lián)系起來,一個用戶在系統(tǒng)中可能具有多個角色,對每個不同的角色設置多種權限,使用ASP.NET技術實現(xiàn)RBAC模型設計。為解決數(shù)據(jù)庫設計問題,文中選擇使用SQL Server來完成數(shù)據(jù)庫設計。

        2.1 數(shù)據(jù)庫設計

        2.1.1 角色表(bs_user_type)設計

        RBAC模型引入角色概念,將用戶(user)歸屬到角色,即成為角色成員。數(shù)據(jù)表字段包括id、角色英文名(typename)、角色中文名(typenameZw)。角色數(shù)據(jù)表結構如圖1所示。

        圖1 角色表(bs_user_type)設計圖

        2.1.2 權限名稱表(sys_menu)設計

        權限名稱表的作用是Web管理員為角色分配權限提供權限對象。數(shù)據(jù)表字段包括id、權限名稱英文名(menucode)、權限名稱中文名(menuname)。權限名稱數(shù)據(jù)表結構如圖2所示。

        圖2 權限名稱表(sys_menu)設計圖

        2.1.3 關系表(bs_dept_menu)設計

        關系表采用多對多關系將角色和權限名稱表進行關聯(lián)。數(shù)據(jù)表字段包括角色表ID(deptCode)、權限名稱英文名(menucode)。Web管理員分配角色權限時,關系表中數(shù)據(jù)字段deptCode值為角色ID、字段menucode值為權限名稱表中權限名稱英文名menucode。關系表數(shù)據(jù)表結構如圖3所示。

        圖3 關系表(bs_dept_menu)設計圖

        根據(jù)數(shù)據(jù)庫的設計,Web開發(fā)人員只需將角色和權限名稱的中文名稱遍歷出來,Web管理員在配置用戶權限的過程中,將用戶分配到角色,然后再給角色分配相應的權限,按照以上數(shù)據(jù)設計完成數(shù)據(jù)存儲。數(shù)據(jù)表關系如圖4所示。

        圖4 數(shù)據(jù)表ER圖

        2.2 關鍵代碼

        ASP.NET采用三層架構開發(fā)技術,分別是數(shù)據(jù)層、業(yè)務層(數(shù)據(jù)訪問層DAL和業(yè)務邏輯層BLL)和表示層。

        2.2.1 表示層界面顯示代碼

        ASP.NET表示層選擇使用TreeView控件完成對權限名稱表的遍歷。TreeView控件顯示html代碼如下:

        //TreeView控件遍歷權限名稱表

        //按鈕觸發(fā)權限分配事件

        TreeView控件及按鈕觸發(fā)c#代碼如下:

        // TreeView控件遍歷權限名稱表c#代碼,根據(jù)sys_menu表中記錄生成樹

        private TreeNodeCollection GetParentNode(TreeNode node, string ccode)

        {

        if(node==null)return TreeView1.Nodes;

        if(ccode.StartsWith(node.Value)) return node.ChildNodes;

        return GetParentNode(node.Parent, ccode);

        }

        //根據(jù)權限項,循環(huán)創(chuàng)建樹

        private void CreateTree(string roleType)

        {

        DataSet ds=user.GetMenus(roleType);

        foreach (DataRow dr in ds.Tables[0].Rows)

        {

        TreeNode node=new TreeNode();

        node.Text=Func.ToString(dr["menuname"]);

        node.Value=Func.ToString(dr["menucode"]);

        node.SelectAction=TreeNodeSelectAction.None;

        node.Checked=secNodes.Contains(node.Value);

        lastNode=node;

        }

        }

        //根據(jù)角色,讀取角色獲取的權限值

        private void PageBind()

        {

        string usertype=Request.QueryString["id"];

        廣西建立了財政部門、主管部門協(xié)同管理專項轉移支付的機制,在分配、下達、執(zhí)行、監(jiān)督、績效方面進一步厘清部門之間對專項轉移支付管理的責任和權力。如在分配環(huán)節(jié),主管部門要在每年10月20日前研究提出資金分配方案,需要報自治區(qū)政府審批的,要求在每年10月15日前研究提出資金分配方案。在下達環(huán)節(jié),財政廳會同主管部門在自治區(qū)人大審查批準自治區(qū)本級預算后60日內(nèi)印發(fā)下達專項轉移支付預算文件。在績效管理方面,主管部門要編制績效目標,實施績效監(jiān)控,開展績效評價等。協(xié)同管理的機制,進一步明晰了責任,形成了對專項轉移支付管理的合力。

        if(!string.IsNullOrEmpty(usertype))

        {

        secNodes=menu.GetMenusByCode(usertype);

        CreateTree(usertype);

        DataBind();

        }

        if(this.TreeView1.Nodes.Count<1)

        {

        ShowMessage(MessageType.Info,"沒有任何菜單可供分配!","","history.back()");

        }

        }

        //按鈕觸發(fā)權限分配事件c#代碼

        protected void btn_save_Click(object sender, EventArgs e)

        {

        string roleCode=Request.QueryString["id"];

        List strMenus=new List();

        if(!string.IsNullOrEmpty(roleCode))

        {

        string secNodes=string.Empty;

        GetSecNodes(TreeView1.Nodes, ref secNodes);

        if(secNodes !=string.Empty) secNodes += ",";

        string[] str=secNodes.Split(',');

        foreach (string s in str)

        {

        if(!string.IsNullOrEmpty(s))

        {

        strMenus.Add(s);

        }

        }

        menu.AssignMenusToDept(strMenus, roleCode);

        }

        }

        private void GetSecNodes(TreeNodeCollection nodes, ref string secNodes)

        {

        foreach (TreeNode node in nodes)

        {

        if(node.Checked)

        {

        secNodes+="," + node.Value;

        GetSecNodes(node.ChildNodes, ref secNodes);

        }

        }

        }

        2.2.2 業(yè)務邏輯層設計

        public List GetMenusByCode(string code)

        {

        return DAOMenu.GetMenusByCode(code);

        }

        public void AssignMenusToDept(List menuCodes, string deptcode)

        {

        DAOMenu.AssignMenusToDept(menuCodes, deptcode);

        }

        2.2.3 數(shù)據(jù)訪問層設計

        //通過角色代碼獲得角色擁有的權限c#代碼的集合

        public static List GetMenusByCode(string code)

        {

        List menus=new List();

        string sql="select * from bs_dept_menu where deptCode=@code";

        DataSet ds=SqlDataProvider.GetResultBySql(sql, SqlDataProvider.CreateSqlParameter("@code", SqlDbType.VarChar, code));

        foreach (DataRow dr in ds.Tables[0].Rows)

        {

        menus.Add(Func.ToString(dr["menucode"]));

        }

        return menus;

        }

        //把權限名稱分配給角色

        public static void AssignMenusToDept(List menuCodes, string deptcode)

        {

        string sql_del="delete from bs_dept_menu where deptcode=@deptcode";

        string sql_ins="insert into bs_dept_menu(deptcode,menucode) values(@deptcode,@menucode)";

        SqlDataProvider.ExecuteBySql(sql_del, SqlDataProvider.CreateSqlParameter("@deptcode", SqlDbType.VarChar, deptcode));

        foreach (string mc in menuCodes)

        {

        SqlDataProvider.ExecuteBySql(sql_ins, SqlDataProvider.CreateSqlParameter("@deptcode", SqlDbType.VarChar, deptcode),

        SqlDataProvider.CreateSqlParameter("@menucode", SqlDbType.VarChar, mc));

        }

        }

        3 結束語

        在Web開發(fā)技術上,從數(shù)據(jù)庫到TreeView控件應用,設計了一個基于RBAC標準的用戶訪問權限管理模型解決方案。該權限管理模型使用ASP.NET技術三層架構實現(xiàn),具有較大的靈活性和可擴展性。實踐證明,檢驗了角色與權限多對多關系的可行性。該模型解決方案有以下優(yōu)勢:角色-權限之間的變化比用戶-權限配置簡單得多,減少了管理員管理的復雜性,提高了工作效率;能夠靈活地支持Web應用系統(tǒng)的安全訪問策略;在操作上,管理員分配權限采用樹目錄操作直觀,簡單易用。

        猜你喜歡
        分配用戶模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        應答器THR和TFFR分配及SIL等級探討
        遺產(chǎn)的分配
        一種分配十分不均的財富
        績效考核分配的實踐與思考
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        3D打印中的模型分割與打包
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        亚洲永久免费中文字幕| 中文字幕肉感巨大的乳专区| 亚洲欧洲偷自拍图片区| 国产精品网站夜色| 亚洲精品成人久久av| 国内精品毛片av在线播放| 亚洲成人av在线蜜桃| 精品香蕉99久久久久网站| 巨人精品福利官方导航| 黑人巨茎大战欧美白妇| 激情五月天伊人久久| 亚洲AV专区一专区二专区三| 手机免费在线观看日韩av| 熟妇高潮一区二区三区在线观看| 韩国三级大全久久网站| 另类内射国产在线| 日本免费人成视频播放| 久久伊人精品只有这里有| 91精品国产自拍视频| 亚洲av综合国产av日韩| 久久午夜夜伦鲁鲁片免费无码| 男女扒开双腿猛进入免费看污| 亚洲av成人在线网站| 精品久久中文字幕一区| 亚洲乱码av中文一区二区| 色偷偷av男人的天堂| 亚洲av国产av综合av| 亚洲av成人一区二区三区网址| 午夜男女视频一区二区三区| 91在线视频在线视频| 一个人看的视频www免费| 国产免费久久精品99re丫y| 亚洲中文乱码在线视频| 特黄aaaaaaaaa毛片免费视频 | 国产精品日韩av一区二区| 特级做a爰片毛片免费看| 醉酒后少妇被疯狂内射视频| 亚洲AV秘 无码一区二区久久| 青青草在线免费播放视频| 亚洲亚洲人成综合网络| 国产一级大片免费看|