3 功能的实现
本系统主要包括:菜单项添加、修改、删除,用户登录、授权,运行动态菜单主窗体以及用户登陆密码修改等。对本系统功能的实现作以下说明:
(1)本系统作为多用户运行,首先遇到的是作为数据载体的XML文件应如何读取与存入问题。换句话说,也就是用什么方式访问服务器端的XML文件,对此我们曾经考虑过三个方案,一是用映射服务器驱动器方法访问XML文件,二是在服务器端开发安装Web服务,客户端通过Web服务访问XML文件;三是通过服务器端的ftp访问XML文件。通过对比我们认为:第一方案是对服务器安全不利。第二方案是简单的问题弄复杂了,本来本系统用XML代替数据库已简单化了,反而又弄复杂了。所以,我们选择了第三方案。具体作法是在服务器端ftp任一站点下创建一个虚拟目录,将四个XML文件复制到虚拟目录相对应的实际路径文件夹下,通过服务器端ftp就可以访问XML文件了。
(2)对XML的操作,是利用了LINQ to XML的功能,非常轻松地将XML文件读取并调入内存、为XML树添加子元素、修改子元素的属性、删除子元素以及各种查询等。
(3)为了用户操作简单、直观与方便,在菜单项添加、修改、删除及用户授权的界面上选用了TreeView控件。用户对TreeView控件节点操作就等同于对菜单的菜单项操作。
(4)为用户授权必须是以菜单中每个菜单项为单位授给用户的,每个菜单项唯一标记就应该是它的所有上级(在有上级时)及其本身索引号组成的字符串,此字符串就决定了该菜单项在菜单中位置。在给TreeView控件添加节点时,利用节点的索引号生成菜单项各级索引号再组成字符串存入菜单的XML文件中。当为用户授权时,再把这些已授权的菜单项对应的字符串提取出来,用分隔符’*’再把它们组成新的字符串存入用户的角色XML文件中。这样,用户在登录时读取相对应的字符串就可以显示所有已授权的菜单项了。
|