1、开发的系统采用B/S结构,分为表示层,业务逻辑层和数据访问层。其中用户表示层为客户端提供对应用程序的访问,业务逻辑层实现应用程序的业务功能,数据访问层为业务逻辑层或表示层提供数据服务。2需求分析(1).系统管理员能对系统中所有的模块进行管理,包括查看模块信息,修改模块信息,删除不需要的模块。(2).系统管理员能查看系统日志,包括登录日志和操作日志。(3)系统管理员能进行权限管理,用户需要身份验证才能进入系统,用户进入系统后每一个操作都进行权限判断,禁止任何越权操作,有效地保护系统数据的安全性。可以动态的对用户进行实时的权限修改。(4).登录用户能随时更改自己的密码。3. 总体设计(1)UML关
2、系图 进入子模块时进行权限判断,若登录用户不具备该模块的最低操作权限,提示越权信息,禁止进入。用户进入子模块时只能用对其开放的功能,发现越权行为时给出警告。(2)功能设计1登录日志记录所有用户的登录信息,包括帐号,时间,主机IP,登录是否成功,还可以让系统管理员删除过期日志信息。2操作日志提供对用户重要操作行为的记录,系统管理员可通过其查看用户对数据库的关键操作,及时发现用户的非法操作,保证系统数据的安全。还可以让系统管理员删除过期操作信息。3.密码修改提供登录用户修改自己密码的功能。 4.权限管理包括模块管理,角色管理和用户管理。模块管理:提供对模块的添加,修改和删除,建立和角色的关系信息,
3、定义基本权限,对每个模块的操作权限分5个级别:浏览,查询,添加,修改和删除。角色管理:提供对角色的添加,修改和删除,建立和模块的关系信息,建立和用户的关系信息。用户管理:提供对用户基本信息的修改和删除功能,添加用户由系统管理员提供,建立和角色的关系信息。(3)数据库设计与实现1登录日志信息表:存放用户登录相关信息。2操作日志信息表:存放用户关键操作的相关信息。3院系基本信息表:存放院系的基本信息。4人员基本信息表:存放用户的登录名,密码及用户的基本信息。5模块基本信息表:存放模块的名称,描述等。6角色基本信息表:存放角色的名称,描述等。7用户角色关系表:存放用户和角色对应关系的信息。8模块角色
4、关系表:存放模块和角色的对应关系的信息。四详细设计(1).数据库的逻辑设计 (2).数据库物理设计1.登录日志信息表2.操作日志信息表3.院系基本信息表4.人员基本信息表5.模块基本信息表6.角色基本信息表7.用户角色关系表8.模块角色关系表注:用整数表示权限,数字越大,权限越大,0浏览1查询2添加3修改4删除.(3)系统主要流程图五具体实现1.登录日志页面UserLog.aspx这个页面主要部分运用了一个DataGrid Web服务控件,用于显示所有登录信息,一个CheckBox Web服务控件,用于选择当前页面的所有记录,一个ImageButton图像按钮Web服务控件,用于删除登录日志操
5、作。后台代码主要完成DataGrid控件数据的绑定,选取页面所有记录操作,以及删除选定的记录。页面权限管理由基类直接提供,页面载入时,提供给基类页面模块名称,基类根据模块名称返回权限代码,页面根据权限代码控制用户的所有操作,如果用户对此模块不具备最低操作权限,则禁止用户进入页面,转到登录页面。当用户进入模块后,用户的所有操作都要经过权限判断,不具备操作权限时则给出提示信息,禁止用户使用。页面如下:主要代码如下:页面载入时,首先调用基类页面初始化函数,设置模块名称,并要求身份验证。private void Page_Load(object sender, System.EventArgs e)
6、this.PageBegin(登录日志,true); if(Page.IsPostBack =false) DataGridLogininfoband(); 事件处理,包括页面载入,按钮点击事件,选择时间等。private void InitializeComponent() this.Load += new System.EventHandler(this.Page_Load); this.DataGridLogininfo.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(th
7、is.DataGridLogininfo_PageIndexChanged); this.DataGridLogininfo.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGridLogininfo_ItemDataBound); this.ImgBdel.Click += new System.Web.UI.ImageClickEventHandler(this.ImgBdel_Click); this.CheckBox2.CheckedChanged += new Syste
8、m.EventHandler(this.CheckBox2_CheckedChanged);数据绑定,并在DataGrid增加一序列号。public void MyBindData() DbManagerLogininfo myclass= new DbManagerLogininfo (); DataTable mytable=myclass.Getalllogininfo (); DataColumn mycolumn= mytable.Columns.Add (number,System.Type .GetType (System.String); for (int i=0;i= 3)
9、Response.Redirect(FuncRightSet.aspx?funcid= + FuncID,false); else JScript.Alert( else if (e.CommandName = delete if(this.EmpRightCode = 4) if(admin.DeleteFuncRoleUser(FuncID,func) this.WriteOptLog(删除模块信息 JScript.Alert( BindData(); else删除失败!添加模块信息按钮单击事件处理方法:private void AddFuncBtn_Click(object sender
10、, System.EventArgs e) if(this.EmpRightCode =2 ) if(FuncName.Text.ToString()!=) bool result = (new AdminDB().InsertFuncInfo(FuncName.Text.ToString(),FuncDescription.Text.ToString(); if(result = false)添加失败!添加模块角色关系信息添加成功! BindData(); FuncName.Text = FuncDescription.Text = 给删除按钮添加删除确认对话框:private void OnAttachScript (object sender, System.Web.UI.WebControls.DataListItemEventArgs e) if (e.Item.ItemType = ListItemType.Item | e.Item.ItemType = ListItemType.AlternatingItem) ImageButton button = (ImageButton) e.Item.FindControl(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1