摘要:為了在企業(yè)標準信息化管理系統(tǒng)中實現(xiàn)辦公逐級審核流程,不同工作人員對模塊持有不同的操作權限,同時可以靈活改變操作權限,將各模塊根據(jù)編號進行2n操作,“與運算”、“或運費”以及“異或運算”的方法,靈活進行權限的增刪修改操作。運行數(shù)據(jù)庫分析理論,通過分析用戶、角色、權限、模塊之間的關系,設計出合理的數(shù)據(jù)庫。通過運用以上方法,并結合實際,編程實現(xiàn)角色權限的訪問控制。分析了權限的實現(xiàn)原理,從系統(tǒng)開發(fā)角度闡述了從權限設計到權限實現(xiàn)的全過程,以靈活控制角色權限。
關鍵詞:權限;角色;信息管理系統(tǒng)
DOIDOI:10.11907/rjdk.172435
中圖分類號:TP391
文獻標識碼:A文章編號文章編號:16727800(2018)003019103
英文摘要Abstract:For the enterprise standard information management system, the office level audit process is implemented,Perform operations on the same or different modules by different staff members,Make it have different operation authority, at the same time can change the operation authority flexibly.Perform 2n operations on each module based on the number,Through the operation method and characteristics of “AND” , “OR”,“XOR” operation,flexible permissions additions and deletions modify the operation.Based on database analysis theory,by analyzing the relationship among users, roles, permissions and modules, a reasonable database is designed.Through the use of the above methods, combined with the actual, programming access control of role permissions.The realization principle of authority is analyzed,F(xiàn)rom the point of view of system development, this paper introduces the total process from permission design to privilege realization,flexible implementation of the role of permissions control.
英文關鍵詞Key Words:authority; role; management information system
0引言
在企業(yè)標準化管理工作中,各級質量技術監(jiān)督部門擔負著非常重要的角色。技術監(jiān)督機構有很多職能部門,不同的職能部門完成不同的工作,這些工作有:標準制定、標準備案、新企業(yè)標準申請、定時對標準實施狀況進行檢查、標準執(zhí)行監(jiān)督,同時還需引進一些同行或其它國家的先進標準等。這些工作在申報過程中需要不同級別的人員進行審核,不同人員負責的工作也會不同,所以需要對用戶的角色、使用權限區(qū)別對待[1]。
為了實現(xiàn)對企業(yè)標準的靈活管理,本文詳細梳理了企業(yè)標準工作,對系統(tǒng)的角色權限進行了詳細設計。設計企業(yè)標準信息化管理系統(tǒng)涉及的工作非常多,共分為8個模塊,分別是:企業(yè)標準制定/修訂管理、企業(yè)標準管理、企業(yè)標準查詢與下載、企業(yè)信息管理、質量監(jiān)督部門管理、用戶管理、角色權限管理、系統(tǒng)管理。這8個模塊中包含新企業(yè)標準申請、企業(yè)標準修訂、企業(yè)信息登記與查詢、企業(yè)標準查詢與下載、企業(yè)標準上傳、部門管理、用戶添加、角色權限添加修改等功能[2]。
系統(tǒng)涉及的用戶也很多,有企業(yè)用戶,有質量監(jiān)督局的辦公人員,企業(yè)用戶需要方便查看業(yè)務辦理進程,有哪些資料要完善等等,而監(jiān)督局的辦公人員則根據(jù)辦理的業(yè)務不同,需要分配不同的權限,在權限中形成一個完整的辦公流程,進行逐級審核。所以在該系統(tǒng)中,權限的設計尤為重要。
1權限設計實現(xiàn)原理
系統(tǒng)用戶分為企業(yè)用戶和政府辦公人員兩大類。企業(yè)用戶可以進行企業(yè)標準的申請辦理,以及查看申請進度等,政府辦公人員則可進行更多操作。需根據(jù)每個人員的分工不同,得到不同的操作權限,所以需要設計不同的角色以及不同的權限,使不同用戶操作的模塊或操作的功能不同。同時還需對系統(tǒng)模塊、操作權限進行增減。因為模塊在不斷變動,若在用戶權限中設置對模塊的訪問權,則用戶權限也在不斷變動,并通過不斷增加字段對模塊的訪問標記進行設置。數(shù)據(jù)庫中不斷變化的字段是程序設計員非常頭疼的問題,會導致工作量加大。為避免對數(shù)據(jù)庫表中的字段進行增減,也為了避免數(shù)據(jù)庫冗余,能夠靈活添加刪除系統(tǒng)中的模塊,在對模塊進行權限操作時,用以下方法快速實現(xiàn)用戶的模塊操作權限。
根據(jù)與運算、或運算的特點可知:
(2 | 4 | 8 | 16)=30
30 & 2 =2
30 & 4=4
30 & 8 =8
30 &16 =16
根據(jù)以上原理,對每個模塊的序號進行2n(n>=1)操作,并將結果放至模塊的字段中。若該模塊被選中為用戶操作權限范圍,則進行int sum=0, sum=sum | 2n的操作,并將結果放入用戶權限字段中。在系統(tǒng)讀取用戶權限時,將sum與每個模塊的2n進行邏輯與操作,若2n是sum結果的一個相加項,則與sum進行邏輯與操作后,結果仍為2n,若不為sum結果的相加項,則所得結果為0。從這個過程中, 2n為用戶的權限操作模塊,這樣就解決了在用戶權限中對某個模塊的訪問權限字段設定問題,數(shù)據(jù)庫的設計也更簡化。
遵照此原理,進行權限的增加、刪除、更新等操作,根據(jù)操作序號給不同的操作賦值(2n),如表1所示。
2權限數(shù)據(jù)庫設計
2.1概念結構設計
不同用戶、不同角色需要操作不同的模塊或不同的功能(如增加、查看、刪除等),所以在設計數(shù)據(jù)庫時,要重點分析用戶、權限、角色、模塊之間的關系。本系統(tǒng)對用戶的授權訪問可劃分為以下幾類:
系統(tǒng)用戶(User):任何有權限登錄系統(tǒng)的使用人員,對該類用戶再具體劃分;
角色(Role):企業(yè)用戶或質量監(jiān)督局工作人員。不同角色有不同的使用權限;
具體操作對象、操作資源(Operator):可以是某個功能模塊,也可以是某個具體的添加、刪除、修改等操作;
群組(Group):可以繼承父類的對應權限等。
對以上4大類進行分析,一個角色可以操作多個模塊,一個模塊也可以被多個角色所操作。因此,這4大類都具有多對多的關系,關系模型如圖1所示。
2.2邏輯結構設計
不同用戶、不同角色可以使用的權限不同,需要對權限實現(xiàn)靈活的變動。大部分辦公系統(tǒng)存在著對用戶、角色、權限的不同需求,本系統(tǒng)重點分析了科室(用戶所在部門)、用戶、角色、角色權限以及功能模塊等幾個主要實體,并對這幾個實體進一步分析,得到8個數(shù)據(jù)表, 圖2給出了這8個表之間的關系,其中科室表(部門)對應模型圖1中的Group,功能模塊表以及功能應用表對應模型圖1中的Resource。
3角色權限實現(xiàn)
用戶注冊的角色不同,權限也不同,每個角色的權限中都有對應的Value值,這個Value值就決定了該用戶的使用權限。Value值對應系統(tǒng)中不同的管理頁面,只有0或1兩種。如果Value值對應的是0,代表該用戶無操作這個功能的權限,如果是1,代表該用戶可以操作這個功能。同時功能應用表中,對最基本的列表、新增、修改、刪除4個操作進行了靈活設置。當用戶登錄系統(tǒng)時,系統(tǒng)檢測該用戶的角色權限,并判斷此頁面的Visible是True還是False。若為False,則不顯示此頁面。實現(xiàn)權限角色管理的類如下:
public partial class RoleManager : System.Web.UI.Page
{
intRoleID = (int)Common.sink("RoleID", MethodType.Get, 255, 0, DataType.Int);
string CMD = (string)Common.sink("CMD", MethodType.Get, 50, 0, DataType.Str);
string CMD_Txt = "查看";
string App_Txt = "角色";
stringAll_Title_Txt = "";
protected void Page_Load(object sender, EventArgs e)
{
FrameWorkPermission.CheckPagePermission(CMD);
BindButton();
if (!Page.IsPostBack)
{
OnStart();
}
}
private void OnStart()
{
if (CMD != "Look")
{
TabOptionItem2.Visible = false;
TabOptionItem3.Visible = false;
}
else {
TabOptionItem3.Visible = false;
intRecordcount=0;
QueryParamqp = new QueryParam();
qp.Where = string.Format("Where A_RoleID = {0}",RoleID);
qp.OrderType = 0;
ArrayListlst = BusinessFacade.sys_RoleApplicationList(qp, out Recordcount);
Repeater1.DataSource = lst;
QueryParam qp1 = new QueryParam();
qp1.OrderType = 0;
ArrayList lst1 = BusinessFacade.sys_ApplicationsList(qp1, out Recordcount);
NewAppID.DataSource = lst1;
NewAppID.DataTextField = "A_AppName";
NewAppID.DataValueField = "ApplicationID";
NewAppID.DataBind();
foreach (sys_RoleApplicationTablevar in lst)
{
ListItem ditem1 = this.NewAppID.Items.FindByValue(var.A_ApplicationID.ToString());
if (ditem1 != null)
NewAppID.Items.Remove(ditem1);
}
ListItem item3 = new ListItem();
item3.Text = "請選擇應用";
item3.Value = "";
NewAppID.Items.Insert(0, item3);
}
InputData();
Button1.Attributes.Add("Onclick", "javascript:returncheckForm(aspnetForm);");
Button2.Attributes.Add("Onclick", "javascript:returncheckForm(aspnetForm);");
}}
具體的權限實現(xiàn)如圖3所示。
4結語
本系統(tǒng)通過B/S架構實現(xiàn)。在設計用戶角色權限時,巧妙運用二進制中的“與運算”、“或運算”、“異或運算”方法,在權限的操作中加入這些運算,靈活實現(xiàn)權限應用的增減操作。這種方式可以使用到其它系統(tǒng)中,重復使用相關代碼,為其它系統(tǒng)進行權限設置提供參考。
參考文獻參考文獻:
[1]涂小琴.面向珠寶檢測領域軟件體系結構的研究與設計[D].昆明:昆明理工大學,2012.
[2]劉艷華,陳麟珠.標準化信息管理系統(tǒng)的設計與研究[J].成功,2016(9):223224.
[3]王哲.加強石油科研單位標準化工作的探討[J].石油工業(yè)技術監(jiān)督,2004(1):3940.
[4]張世宏.基于JBPM工作流的電力固定資產(chǎn)管理系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2007.
[5]朱琳.四川建筑職業(yè)技術學院科研管理系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2012.
[6]丁曉娣.基于.net的民辦高校教務管理系統(tǒng)分析設計與實現(xiàn)[D].濟南:山東大學,2013.
[7]王海楠.貴州水書數(shù)字化展示系統(tǒng)設計與實現(xiàn)[D].成都:電子科技大學,2014.
[8]劉柱.中山市公安案件管理信息系統(tǒng)設計與實現(xiàn)[D].成都:電子科技大學,2013.
[9]郭宇.企業(yè)信息管理系統(tǒng)[J].科技資訊,2007(18):229230.
[10]張洪俊.云南省招生計劃通用管理系統(tǒng)設計[D].天津:天津大學,2015.
責任編輯(責任編輯:杜能鋼)