教育报表管理系统权限管理模块的实现—免费毕业设计论文内容摘要:

四张权限表的主键 ID,这样每张报表都有了报表所属地的权限,对不同权限用户都可控制所对 应所属地的报表为了方便软件开发。 四张权限关系表图如下: 图 9 四级权限关系图  数据库关系 数据库总体结构由 sysUser(用户表 ),syslog(操作记录日志表 ),sysCity(市级权限表 ),sysCounty( 县级权限表 ),sysTown( 乡镇级表 ),sysSchool( 学校权限表 ),xiaoxue12(报表数据表 )… 等表构成。 这些表都是用 sysUser 表关联的,在用户权限里, sysCity,sysCounty,sysTown,sysSchool 的主键都将写入 susUser 表的作外键,在 syslog 表 里, userid 作外键与 sysUser 表关联;在 xiaoxue12 等报表数据表里, sysUser 表里的 cityid,countyid,townid,schoolid 都将写入 xiaoxue12 等数据表里与 sysUser 表关联。 关系图如下: 图 10 数据库 关系图 6 建模 模块设计 (权限管理部分 ) 各子模块的重要功能如下 :  模块一:密码模块 该模块主要完成密码的修改部分。 用户登陆后,如果需要修改密码,则进入该页面。 需要输入三次密码,原密码,新密码和新密码确认。 输入完成后可选择确定修改密码,也可 取消此次操作。 如果原密码错误或新密码确认出错,则此次修改密码失败。 密码可以修改多次,但是用户名必须由市级用户确定,一旦用户名确定,其权限也被确定,用户自己不得修改。 密码模块流程图如下: 图 11 密码模块流程 图  模块二:权限管理部分 权限管理部分主要实现四级权限和用户权限的管理。 分为市、县、乡镇、学校四个管理级别。 市级用户登陆后,系统会识别出用户名以及其权限。 市级用户否,拒绝登录 ,重新登陆 发出登录请求,输入UserName 和 Password 验证 用户名是否合法 用户 提交请求 是 登陆成功,读取用户的权限标识符和所属地标识符 根据相应地标识符和所属地操作相应地报表 可以完成市及其下属单位的添加和删除,比如 县名,乡镇名等。 市级用户还可以添加和删除用户,在添加用户时,需给出用户的密码以及用户拥有的权限,比如市级用户,县级用户等。 市级用户可查看修改整个市及下属单位的报表数据,县级用户只能查看县及下属单位数据,以次类推。 整个四级权限采用了数据库绑定,实现地区绑定。 绑定由市级用户完成。 权限管理流程图如下: 图 12 权限管理流程 图 否 用户 判断是否市级用户 添加用户和权限 判断是否县级用户 判断是否乡镇级用户 判断是否学校用户 报表 查看与打印 报表录入 ,修改与删除 是 是 是 是 否 否 图 13 系统部署图 部署图说明: ⑴ 服务器: .NET Framework 和 IIS 服务; ⑵ 数据库服务器:需安装有 SQL Server 2020。 7 系统实现 服务器端的配置: Windows2020/2020 Sever Microsoft .NET 以上 以上 MSSQL2020 以上 数据库连接设置 以文本方式打开 ,设置连接数据库服务器的用户名、密码以及服务器的机器名。 下图中以高亮形式显示为需要设置的地方。 Uid=“连接数据库服务器的用户名”; Pwd=“连接数据库服务器的密码”; Database=“数据库名称”; Server=“数据库服务器的主机名”。 请按照实际的情况来设置。 图 14 数据库连接图 报表的制作采用 Dreamweaver 8 专业网页制作工具制作,不仅方便,而且效率相当高。 制作过程非常简单,使用 Dreamweaver 自带的表格工具进行制作。 这里就不详细叙述了。 报表是根据教育局原有报表进行排版和设计的。 在制作中需要注意网页显示以及打印出的效果是否与教育局的实体表格一致,往往需要经过反复修改才能达到实体的效果。 报表制作图见图 15 作 页面的制作我使用的是 Photoshop cs 和 Dreamweaver 8 这两种 软件。 Photoshop cs 是专门用来进行图像处理的软件。 通过它可以对图像修饰、对图形进行编辑 , 以及对图像的色彩处理,另外,还有绘图和输出功能等。 Dreamweaver主要用来 制作网页文件。 网页素材主要是平时积累所得。 先选择比较理想的素材,或者是通过制图软件绘制的图片,通过 Photoshop 图片处理器做一些必要的修改,添加文字和效果,再使用 Dreamweaver 软件将制作好的网站图片镶嵌到网页中去。 其具体过程 我就不详细叙述了。 图 15 报表制作图 在用户登陆后,系统自动识别用户权限,登陆界面设计如下: 图 16 系统登陆界面 用户登陆后系统自动识别用户的权限,并把用户权限和用户名用 Session 方法在服务器保存, 密码在数据库里采用 MD5 加密保存,用户登陆成功后,用户名将在客服端用 Cookie 方式保存,这样避免了用户在登陆系统时重复输入用户名和密码,在其他页面初始化时,将判断客服端的保存的 Cookie 值,如果值为 空将返回登陆界面。 主要代码如下: string pwd。 pwd = (, MD5)。 //密码用 MD5加密 drLogin = new scReader(select userid,countyid,townid,schoolid,userpower from sysuser where username=39。 + + 39。 and userpwd=39。 + pwd + 39。 )。 //查询用户名和密码是否存在 if ( != amp。 amp。 != amp。 amp。 ())//如果用户名,密码都正确 { //写入 Cookies HttpCookie MyCookie = new HttpCookie(UserName)。 //新建 Cookie =。 //保存 UserName为 Cookie DateTime dt =。 //得到系统时间 TimeSpan ts = new TimeSpan(30, 0, 0, 0)。 //设置 cookie的过期时间为当前时间后的 10000分钟 = (ts)。 //添加 Cookie的过期时间 (MyCookie)。 //保存 Cookie的设置 (, true)。 //转向管理页面 } Else //用户名和名判断失败 { (script language=39。 javascript39。 alert(39。 用户名或密码错误 ,请重新输入 !39。 )。 /script)。 //提示 =。 =。 } ()。 //数据库对象关闭 } 图 17 权限管理与用户模块界面 四级权限管理与用户的添加根据管理员完成, 对应执行相应的代码 主要代码如下: if (() == 市级权限 ) //添加市级用户的代码 { drLogin = new scReader(select cityid from syscity where cityname=39。 + () + 39。 )。 //查询市级 ID if (()) { cityid= (int)drLogin[cityid]。 //保存 CityID drLogin = new scReader(insert sysuser(countyid,townid,schoolid,userpower,cityid,username,userpwd) values(0,0,0,0, + cityid + ,39。 + + 39。 ,39。 + (txtAddUserPw, MD5) + 39。 ))。 //用户名,密码,用户权限写入数据库 (script language=39。 javascript39。 alert(39。 添加成功 !39。 )。 /script)。 //添加成功 =。 =。 } } if (() == 县级权限 )//添加县级权限的代码 { drLogin = new scReader(select countyid,cityid from syscounty where countyname=39。 + () + 39。 )。 //查询县级 ID,市级 ID if (()) { countyid = (int)drLogin[countyid]。 //保存县级 ID cityid = (int)drLogin[cityid]。 //保存市级 ID drLogin = new scReader(insert sysuser(townid,schoolid,userpower,cityid,countyid,username,userpwd) values(0,0,1, + cityid + , + countyid + ,39。 + + 39。 ,39。 + (txtAddUserPw, MD5) + 39。 ))。 //写入数据库用户名,密码,权限 (script language=39。 javascript39。 alert(39。 添加成功 !39。 )。 /script)。 //添加成功 =。 =。 } } if (() == 乡镇级权限 )//添加乡镇级权限 ID { drLogin = new scReader(select countyid,townid,cityid from systown where townname=39。 + () + 39。 )。 //查询乡镇级 ID,县级 ID,市级 ID if (()) { countyid = (int)drLogin[countyid]。 //保存县级 IID townid = (int)drLogin[townid]。 //保存乡镇级 D cityid = (int)drLogin[cityid]。 //保存市级 ID drLogin = new scReader(insert sysuser(schoolid,userpower,cityid,townid,countyid,username,userpwd) values(0,2, + cityid +, + townid + , + countyid + ,39。 + + 39。 ,39。 + (txtAddUserPw, MD5) + 39。 )。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。