《文档管理的设计与开发.doc》由会员分享,可在线阅读,更多相关《文档管理的设计与开发.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流文档管理的设计与开发.精品文档.毕业设计(论文)题目:OA文档管理系统姓 名: 学 号: 专 业: 系 别: 指导教师: OA系统中文档管理的设计与开发摘要:随着办公系统的发展和完善,电子文档的管理越来越重要。企业内部,企业之间传输电子文档和共享电子文档以及电子文档的安全越来越受到重视。建立高效廉价,并且容易管理发布的电子文档管理系统越来越受到青睐。鉴于B/S模式的优点,使得大多数的文档管理系统采用这种模式。B/S模式利用互联网的廉价性和可移植性,对办公环境没有什么高的要求,同时借助浏览器的快速布置,可以很好的解决企业文档的管理,使文档的管理
2、以及维护可以随时随地进行,从而降低企业成本,有利于企业提高办公效率,解决企业文档的分散处理与集中管理。本论较详细分析了企业OA中文档管理的需求,建立需求说明书,分析系统功能模块,在.NET平台之上,利用ASP.NET技术搭建了一个具有良好权限管理的文档管理系统。对其中了一些关键性技术进行了分析,并给出了关键部分的程序代码。本系统基于.NET平台,采用Visual Studio 2005作为开发工具,使用SQL Server2000作为后台数据库支持。关键词:OA 文档管理 上传下载 权限管理目 录1.引言11.1 问题的提出11.2 文档管理系统概述11.3 论文组织结构22. 文档管理系统的
3、需求分析32.1 文档管理系统的目的32.2 业务需求分析32.3 功能需求分析和用例设计42.3.1 用户管理功能分析和用例42.3.2 文档管理功能分析和用例52.4 系统功能模块图63.文档管理系统的设计63.1 系统结构设计63.1.1 系统采用三层结构设计:数据层,逻辑层,表示层63.1.2 业务逻辑层73.1.3 数据层93.2 用户页面设计93.3 数据库设计103.3.1数据库总体设计103.3.2 数据库表详细设计123.4 各个模块设计153.4.1 登陆和权限验证模块163.4.2 数据操作模块163.43 用户管理模块163.4.4角色管理模块173.4.5 文档管理模
4、块174. 文档管理系统的实现174.1 开发平台与运行环境174.1.1 系统开发环境174.1.2 系统运行条件184.2主要程序代码和截图184.2.1 程序配置 Web.Config文件主要代码184.2.2 数据库操作SqlHand类主要代码184.2.3 权限验证 Authority类主要代码194.2.4 用户管理User类主要代码和用户管理程序运行截图194.2.5 角色管理 Role主要代码和程序运行截图204.2.6 文档管理 Doc类主要代码和程序运行截图215. 系统测试225.1 黑盒测试流程图225.2 测试过程235.3 测试结果23结论24参考文献25附 录26
5、OA系统中文档管理的设计与开发1. 引言1.1 问题的提出 网络技术和计算机技术的发展普及,使得计算机网络及信息管理系统在政府机构、企事业单位以及社会团体的运作中发挥着越来越重要的作用。Web已经对我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。范围广泛的、复杂的分布式应用正在Web环境中出现。Web服务技术在文件档案管理系统中的运用,主要思想可总结为:数据的分布存储,资源的集中共享。文档管理中心为用户提供一个覆盖本单位所有部门档案的检索系统,可以方便地查询到所需要的档案资料存放的位置。通过对本网络的检索,就可以实现对不同部门
6、档案目录的检索,并且可以实现和各部门目录的同步更新,达到资源共享的目的, 基于B/S模式的文档管理系统更能适应时代发展潮流。1.2 文档管理系统概述OA(Office Automation),即办公自动化,是指利用计算机技术和网络技术,使办公室工作逐步物化于各种现代化设备中,由办公室人员和设备共同构成服务于某种目标的人机信息处理系统。文档管理系统是OA的一个很重要的组成部分,它能够对各种电子文档和资料 (Office文档、图形图像、音频视频、XML文档、历史档案、扫描的票据影像、数据库导出记录、其他文档)进行有效的组织管理和再利用。文档管理系统在政府机关和企事业单位办公中是至关重要的工作,包括
7、公文流通系统和文件管理系统等两个系统。所谓公文流通就是指文档的产生过程,是由文档的起草、修改、传阅、定稿、批准、签字、归档和分发等一系列活动构成的过程。所谓文件管理系统是指由分类、归档、提取关键词、编目造册、文件存档,以及文件的检索、借阅、归还等等一系列繁琐工作构成的过程。在这两个系统中,文档都是操作的主要对象。所谓文档对象就是把文档当作一个对象来处理,对象具有名称、属性和行为,因此文档对象也具有这三个特点。文档对象的名称。文档对象的名称有逻辑名称和物理名称之分。逻辑名称表示文档的内容,如果文档是一篇文章,则逻辑名称就是文章的题目。由逻辑名称可以大致了解文档的主要内容。而物理名称则是指文档在计
8、算机中存储时能被计算机识别的名称。在使用时,操作人员主要通过文档的逻辑名称对文档进行识别和操作,而系统则通过逻辑名称和物理名称的对应关系来对文档进行识别,并进行相应的操作。文档对象的属性,一切对象都有其属性,文档也不例外。文档对象的属性可以分为外部属性和内部属性。外部属性包括:发文单位、发文时间、收文单位、收文时间、审批人、抄送单位、保送单位、下发单位、阅读权限(密级)等等反映文档整体情况的属性。内部属性包括:关键词、内容摘要、文章标题、全文等反映文档内部情况的属性。具体属性需要根据具体情况确定。文档对象的行为是指文档的起草、修改、审批、归档、发放等。在文档管理系统中,系统的任务是将文档归类存
9、放、编目造册,并提供文档查询功能。这就需要对文档的属性进行分析,选择合适的属性进行分类,在查询界面中,给不同的用户提供想要选择的属性,并根据他们的输入来输出结果。而在公文流通系统中,系统的任务是管理文档从起草到发布、归档的一系列过程。因而分析的重点则是文档的行为。通过对文档管理流程的分析,设计出一套系统来对文档的流通过程进行控制并提高其流通的效率。文档管理系统的基本内容:权限管理、目录管理、文档管理、回收站管理、检索等。基于B/S的文档管理系统可以利用计算机和网络的无限广阔空间,随时随地的进行信息处理。1.3 论文组织结构论文共分为六章,各章的内容组织如下:第一章:绪论。通过国内外信息技术的发
10、展,引出办公自动化中文档管理系统的发展状况,简要介绍了文档管理系统在企业应用中的重要性以及现代文档管理系统的特点。第二章:基于B/S模式的文档管理系统的需求分析。通过现有的文档管理系统的分析,确定本系统的业务逻辑和业务需求,并确定功能需求,建立用例和用例说明。第三章:基于B/S模式的文档管理系统的设计。通过分析企业的业务需求和功能需求,进一步给出了文档管理系统的整个体系结构的设计。包括系统结构设计、用户页面设计、数据库设计、权限验证设计。第四章:基于B/S的文档管理系统的实现。依据文档管理系统的设计,给出基于这种设计所用到的重要代码,并给出系统运行截图。第五章:系统测试。2. 文档管理系统的需
11、求分析2.1 文档管理系统的目的实现对文档的集中存储和管理,从而可以很好的保证文档的存储安全,提高文档的安全访问级别,很好地实现文档的分发、查询和共享,提高办公效率,保证文档的高效率的使用。最终方便用户对电子文档的管理。2.2 业务需求分析用户权限部分:(1)超级用户。拥有系统完全控制权,不可以删除。(2)一般用户。可以上传文档,查看文档,发布、搜索、删除文档,回收站复原文档,设置文档的属性。(3)一般管理员。对一类文档进行管理,分类,修改、删除发布在次类里的相关文档,根据管理员的设置进行部分权限管理。(4)系统管理员。对系统进行配置,设置部门,设置各类角色,设置角色权限,设置文档管理员并为其
12、添加角色,用户的添加,删除,权限角色的分配。文档的管理部分:(1)文档的分类。根据公司的行政划分和业务分类,文档管理员可自定义文档目录的分类,按照树形结构原则进行目录管理。(2)文档的权限管理。文档管理中的权限管理非常关键,必须对目录和文档进行可细化权限管理,使文档得到安全的存储和访问。根据发布者的权限,可以对改,并且检索系统也不能检索到。(3)文档的上传。用户登录后,根据权限,决定是否可以上传文档。上传文档时,登记文档的各种属性,存储文档基本信息,并以附件的形式存储文档的相关文件,设置检索关键字。(4)文档的下载。只有合法用户才可以下载文档,对于一般用户只能下载管理设置的普通文档,对于机密文
13、档,不能随便查看和下载,也不能让没有权限的用户看到文档的任何信息。(5)文档的修改。对于上传的文档,可以进行修改,对于拥有修改权限的用户,可以对文档的基本信息进行修改。(6)文档的删除。文档管理员和拥有删除该文档权限的用户可以将文档库中的文档彻底删除或移动到回收站。(7)文档的检索。根据用户权限,用户可以查询已归档的文档,系统对其提供多种查询方式,如按时间、摘要、部门、文档名等条件进行查询。2.3 功能需求分析和用例设计分析业务需求,得到的功能需求包括了以下几个方面的内容,通过使用UML的建模方法,分别得到每个功能需求的用例图。2.3.1 用户管理功能分析和用例用户管理部分主要是对用户的权限进
14、行管理,包括用户的基本信息管理,角色信息管理,角色权限的管理。用户基本信息管理主要有:用户的添加、删除,用户基本个人信息的修改。根据用户的身份,为用户管理角色信息。角色信息的管理主要有:角色的添加、删除,根据企业的需要,分析企业中的用户类别设立各种角色。角色权限管理主要是对已有的角色设置各种权限,通过角色权限的设置,可以为拥有该角色的用户分配权限。用户管理部分的用例图1(如图2.1)图2.1用户管理部分的用例图2.3.2 文档管理功能分析和用例文档管理部分主要对存储的文档进行分类,上传,下载设定,通过文档的分类,企业可以提高对文档的使用效率。上传,下载和文档的存储对于文档的安全性非常重要。文档
15、分类,管理员可以添加、删除文档分类(删除分类同时将其文档删除)一般用户可以上传文档,下载文档,编辑文档,回收站清理文档用例2如图2.2图2.2 文档添加删除用例图对于文档的删除,采用回收站模式,而不是立即完全删除该文档,而是将文档放入回收站,只有在回收站进行删除时才可以将其彻底删除。2.4 系统功能模块图如图2.3图2.3 系统模块图3.文档管理系统的设计3.1 系统结构设计3.1.1 系统采用三层结构设计:数据层,逻辑层,表示层三层架构概述:主要体现出对程序分而治之的思想,数据访问层只负责提供原始数据,并不需要业务逻辑是什么;逻辑层调用数据访问层提供的方法,自定义一些业务逻辑,对数据进行加工
16、,本身不需要了解数据访问层的实现3;表示层直接调逻辑层提供的方法,把数据呈现给用户,同样,它也不需要了解业务逻辑层和数据访问层是怎么实现的。这样的好处就是降低耦合,易于程序的维护和扩展,开发出的程序比较有层次感,如图3.1图3.1 三层结构图表示层:用户界面、用户交互。(将有意义的数据转化成对用户有意义的数据)逻辑层:包括业务实体组件和业务逻辑组件。业务实体组件一般是根据数据库中的表来构建的,业务逻辑组件主要是自定义一些业务规则,完成一些功能。(将原始数据转化成有意义的数据)数据访问层:数据访问和存储。(取得原始数据)3.1.2 业务逻辑层登陆模块流程图,如图3.2图3.2登陆模块流程图角色管
17、理模块流程图,如图3.3图3.3 角色管理模块流程图文档管理模块流程图,如图3.4图3.4 文档管理模块流程图3.1.3 数据层根据该系统的业务逻辑层的表示,系统中数据的操作属于数据层的任务。在数据层建立数据操作的各种API,以供逻辑层使用。数据层设计:(1)数据库连接;(2)数据查询;(3)数据添加;(4)数据修改;3.2 用户页面设计页面采用框架结构:头部、导航树、主体,如图3.5图3.5 首页图示主色调为深蓝色,导航采用树型方式,便于像Windows资源管理器那样管理文档。规格:(1)全屏(2)头部:96px(3)导航树:默认163px,可以拖动3.3 数据库设计3.3.1数据库总体设计
18、User Table表(用户表)、Role Table表(“角色表”)、Module Table(“模块表”)、Function Table表(“权限表”)是四张实体表,它们依次记录着“用户”信息、“角色”的信息、“模块”信息和“权限”的信息,如图3.6图3.6 数据库实体表“用户表”和“角色表”是多对多关系,用于用户角色的管理,因此添加一个新表:“用户角色表”。 一个用户可以属于多个角色,多个用户也可以属于一个角色。权限直接赋给角色,这样,对用户权限的修改就可以直接通过对用户角色的修改来实现4。三张表关系如图3.7图3.7 用户-用户角色-角色“模块/文档类别表”和“权限表”是“多对多”关系
19、,因此添加“模块权限表”,用于对模块权限的管理。对一个模块可以有多种操作(权限),而一种操作也可分给多个模块。对角色的权限管理,直接通过相应的模块权限Id,就可以实现。这三张表的关系如图3.8图3.8 模块-模块权限-权限图3.8说明了模块和它所用于的权限,于是添加角色权限表,将模块和它所拥有的权限赋给角色,用于角色管理。如图3.9图3.9 角色赋值整个系统数据库表结构如图3.10图3.10数据库关系3.3.2 数据库表详细设计首先建立数据库DocDataBase,其中权限管理有7张表,文档存储有2张表。如表3.1表3.1 数据库表表名用途UserTable用户信息表RoleTable角色表U
20、serRole用户角色表RoleRight角色权限表ModuleTable模块/文档类别表ModuleFunction模块功能表FunctionTable功能注册表Doc文档信息表DocInfo文档附件表(1)用户信息表UserTable用户信息表用来存放用户登陆名和密码以及一些个人基本信息。如表3.2表3.2 UserTable编号字段名称数据类型说胆1UserIdInt用户ID,主键2UserNameNvarchar(50)用户登陆名3UserKeyNvarchar(50)登陆密码4UserTelNvarchar(50)电话5UserInfoNvarchar(100)个人介绍(2)角色表R
21、oleTable角色表用来存放角色信息。如表3.3表3.3 RoleTable编号字段名称数据类型说明1RoleIDint角色ID,主键2RoleNameNvarchar(50)角色名称(3)用户角色表UserRole用户角色表用来存放用户和角色的关系。用户和角色之间是多对多关系。如表3.4表3.4 UserRole编号字段名称数据类型说明1UserRoleIDint用户角色ID,主键2UserIDint用户ID3RoleIDInt角色ID(4)角色权限表RoleRight角色权限表用来存放角色与模块权限的关系。如表3.5表3.5 RoleRight编号字段名称数据类型说明1RoleRight
22、IdInt角色权限ID,主键2RoleIdInt角色ID3ModuleFunctionIdInt模块功能ID(5)模块/文档类别表ModuleTable模块/文档类别表用来存放模块和文档的类别,这里将用户管理模块,角色管理模块,文档类别全部看做模块。如表3.6表3.6 ModuleTable编号字段名称数据类型说明1ModuleIdInt模块ID,主键2ModuleNameNvarchar(50)模块名称3ParentIdNvarchar(50)上一级模块ID(6)模块功能表ModuleFunction模块功能表用来存放模块与功能的关系。如表3.7表3.7 ModuleFunction编号字段
23、名称数据类型说明1ModuleFunctionIdint模块功能Id,主键2ModuleIdint模块Id3FunctionIdint功能Id(7)功能注册表FunctionTable功能注册表用来存放模块功能。如表3.8表3.8 FunctionTable编号字段名称数据类型说明1FunctionIdint功能ID,主键2FunctionNameNvarchar(50)功能名称(8)文档信息表Doc文档信息表用来存放文档信息。如表3.9表3.9 Doc编号字段名称数据类型说明1DocIdInt 文档ID2ModuleIdInt文档类别ID3DocNameNvarchar(50)文档标题4Do
24、cMsgNvarchar(100)文档简述5DocTimedatetime上传时间6UserIDint发布者7DocRecycleint是否在回收站(0是1否)(9)文档附件表DocInfo文档附件表用来存放文档附件,如表3.10表3.10 DocInfo编号字段名称数据类型说明1InfoIdint附件ID2DocIdint文档ID3InfoNameVarchar(50)附件名称4InfoSizeVarchar(50)附件大小5InfoContentTypeVarchar(50)附件类型6InfoContentImage附件内容3.4 各个模块设计3.4.1 登陆和权限验证模块系统使用Form
25、s身份验证,对于登陆成功的用户使用Session记录其UserId,并将其导航之主页。建立权限验证Authority类,根据用户UserId,判断用户权限,并显示相应功能和文档。(1)用户登陆数据库用户密码采用MD5加密存储,因此,需要将用户输入的密码采用MD5加密,并和数据库对照,判断用户是否通过验证。由于对于登陆成功的用户需要记录其UserId,因此在用户管理类需要一个根据UserName返回UserId的方法。(2)权限验证在导航树中,需要显示用户可以使用的模块和文档目录,因此对与登陆成功的用户,需要验证其权限,并在导航树中显示模块列表。数据库添加函数,实现级联查询,根据UserId和查
26、看权限,在模块表中找到要显示的模块并返回表。具体SQL函数代码(见附录)根据UserId和ModuleId查询角色所拥有的权限,返回权限表。具体SQL函数代码(见附录)3.4.2 数据操作模块数据操作模块主要用于数据库操作,为其他逻辑类提供各种数据访问接口。建立SqlHand类,该类的主要方法有:(1)连接数据库,生成SqlConnectiond对象;(2)根据Sql语句,返回SqlDataReader对象;(3)根据Sql语句,返回DataSet对象;(4)根据Sql语句,返回第一行第一列(String类型);3.4.3 用户管理模块用户管理模块包括:用户添加、删除、修改和角色配置。建立Us
27、er类,通过User类实现对用户的添加、删除、修改和角色配置。如果一个用户具有管理用户的权限,哪就可以给其显示用户列表,并根据其拥有的权限(添加用户,删除用户,修改用户信息,修改用户角色信息)显示相应的功能。User类的方法有:(1)MD5加密函数:给用户密码进行MD5加密;(2)AddUser函数,添加用户信息返回新添加的用户ID;(3)UpdateUser函数,更新用户信息;(4)DelUser函数,删除用户;(数据库实现级联删除,在删除用户时,在用户角色表里删除用户所拥有的角色。)(5)UserRole函数,添加、删除用户角色;3.4.4角色管理模块角色管理模块包括:角色添加、删除、修改
28、和角色权限配置。建立Role类,通过Role类实现对角色的添加、删除、修改和角色权限配置。Role类的方法有:(1)AddRole函数,添加角色;(在添加角色的同时,更新角色的权限信息,并且权限信息不能发生冲突)(2)DelRole函数,删除角色;3.4.5 文档管理模块文档管理模块包括:文件夹的添加、删除,文档的添加、删除和下载。Doc类的主要方法有:(1)AddCategory函数,添加文件夹;(当添加一个新的文件夹时,需要根据用户所拥有的角色,查看是在使用的哪个角色添加的文件夹,并设置相应的角色也有对新添加的文件夹有查看、删除和添加权限。)(2)DelCategory函数,删除文件夹,删
29、除时,删除相应的文件。(3)AddDocInfo函数,上传文件附件;(文档的附件以二进制的形式写入数据库。)(4)InfoContent函数,奖文件以二进制形式写入数组;(5)Down类,下载文件;(对与文档地址,采用加密的形式,在下载是,对其地址解密,并验证用户是否具有下载权限,建立Down类。)(6)Encrypt函数,地址加密;(对文档的下载地址进行加密)(7)Decrypt函数,地址解密;4. 文档管理系统的实现4.1 开发平台与运行环境4.1.1 系统开发环境利用web服务技术,在实现分布式的文档管理,以及可跨平台性,可维护性、灵活性、通用性、可移植性以及可扩展性等方面都变得比较容易
30、。.NET框架中的ASP.NET技术更适合于B/S结构的系统开发。开发环境清单:(1)Windows XP操作系统(2)Visual Studio 20055(3)SQL Server2000(4)Microsoft Word、Visio(5)Adobe Dreamweaver CS4 PhotoShop CS4(6)MS notepad4.1.2 系统运行条件(1)Windows IIS 服务器(2).NET Framework2.0 并注册IIS6(3)Microsoft SQL Server 2000 数据库(4)Web.Config文件中配置数据库4.2主要程序代码和截图4.2.1 程
31、序配置 Web.Config文件主要代码(1)数据库链接字符串(代码见附录)(2)配置身份验证(代码见附录)(3)配置保护目录(代码见附录)(4)下载文档是,自动执行检查(代码见附录)4.2.2 数据库操作SqlHand类主要代码(1)执行Sql语句,返回DataSet(代码见附录)(2)执行Sql语句,返回DataView(代码见附录)(3)执行Sql语句,返回返回第一行,第一例(代码见附录)(4)执行sql语句,返回受影响的行(代码见附录)4.2.3 权限验证 Authority类主要代码(1)根据UserId和查看权限,返回用户可以看到的模块Id数组(代码见附录)(2)查询用户在模块中所
32、拥有的权限是哪个角色,返回角色Id数组(代码见附录)(3)对于文档下载实现地址加密(代码见附录)(4)对于文档下载地址解密(代码见附录)(5)查询用户UserId是否拥有ModuleId的power权限(代码见附录)4.2.4 用户管理User类主要代码和用户管理程序运行截图(1)添加用户,如图4.1图4.1 添加用户主要程序代码(见附录)(2)用户角色管理,如图4.2图4.2 角色管理主要程序代码(见附录)(3)User类主要代码(见附录)4.2.5 角色管理 Role主要代码和程序运行截图(1)角色管理,如图4.3图4.3 角色权限赋值主要程序代码(见附录)(2)Role类主要代码(见附录
33、)4.2.6 文档管理 Doc类主要代码和程序运行截图(1)添加文件夹,如图4.4图4.4 添加文件夹主要程序代码(见附录)(2)上传文档,如图4.5图4.5 上传文档图4.6 下载文档主要程序代码(见附录)(3)文档下载类主要代码(见附录)(4)文档列表显示主要代码(见附录)5. 系统测试5.1 黑盒测试流程图如图5.1图5.1 测试流程图5.2 测试过程(1)管理员添加用户aaa,并设置一般用户角色,一般用户角色对文件夹c1只有查看权限,没有上传权限。(2)用户aaa登陆,查看文件夹c1,可以查看,上传文件功能不可用,说明权限设置正确。(3)管理员登陆,将一般用户角色权限设置,可以上传c1
34、文件夹。(4)用户aaa登陆,上传文件到c1文件夹,可以上传,权限设置正确。5.3 测试结果系统经过内部测试后,基本符合需求说明,并能正常运行。结论通过OA文档管理系统的开发,我对基于B/S模式的软件开发过程有了更清晰的了解。基于B/S的软件开发,首先是问题定义和需求分析,然后是根据需求设计相应的页面,通过页面的设计,深入了解需求分析,建立软件开发模块,在模块的基础上,提取组件,建立优化的组件,提高程序共享。参考文献1 张瑜,杨继萍等译UML基础教程 北京: 清华大学出版社,2003年10月14382 蔡敏,徐慧慧,黄炳强UML基础与Rose建模教程北京:人民邮电出版社,2006年1月7692
35、3 丁昊凯,许静雯ASP.NET网站开发典型模块与实列精讲北京:电子工业出版社,2006年8月3053624 Microsoft著数据库程序设计-SQL Server 2000数据库程序设计北京:高等教育出版社,2004年2月2292505 Microsoft著C#程序设计语言北京:高等教育出版社,2003年8月1181276 Microsoft著基于C#的.NET Framework程序设计北京:高等教育出版社,2004年1月94102附 录(1)数据库函数,验证权限dbo.UserModuleListByFunctionIdCreate function UserModuleListByF
36、unctionId(UserId int,FunctionId int) returns tableasreturn(select ModuleTable.ModuleId from ModuleTableinner join ModuleFunctionon ModuleFunction.ModuleId=ModuleTable.ModuleIdinner join FunctionTableon FunctionTable.FunctionId=ModuleFunction.FunctionIdinner join RoleRighton RoleRight.ModuleFunctionI
37、d=ModuleFunction.ModuleFunctionIdinner join UserRoleon UserRole.RoleId=RoleRight.RoleIdwhere UserRole.UserId=UserId and FunctionTable.FunctionId=FunctionId(2)数据库函数,查询角色权限dbo.selectRoleRightcreate function selectRoleRight(UserId int,ModuleId int)returns tableasreturn(select FunctionName from Function
38、Tableinner join ModuleFunctionon ModuleFunction.FunctionId=FunctionTable.FunctionIdinner join RoleRighton RoleRight.ModuleFunctionId=ModuleFunction.ModuleFunctionIdinner join UserRoleon UserRole.RoleId=RoleRight.RoleIdwhere UserRole.UserId=UserId and ModuleFunction.ModuleId=ModuleId(3)数据库链接字符串(4)配置身
39、份验证(5)配置保护目录(6)下载文档是,自动执行检查 (7)执行Sql语句,返回DataSetpublic DataSet dataset(string sql) /返回DataSet对象 open(); SqlDataAdapter rs = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); rs.Fill(ds); close(); return ds;(8)执行Sql语句,返回DataViewpublic DataView dataview(string sql) / 返回DataView对象 open(); Data
40、Set ds = new DataSet(); ds = dataset(sql); DataView dv = new DataView(ds.Tables0); close(); return dv;(9)执行Sql语句,返回返回第一行,第一例public string GetFirst(string sql) string dFirst = ; open(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read() dFirst = dr0.T
41、oString(); return dFirst;(10)执行sql语句,返回受影响的行public int execsql(string sql) int c; open(); SqlCommand cmd = new SqlCommand(sql, conn); c = cmd.ExecuteNonQuery(); close(); return c;(11)根据UserId和查看权限,返回用户可以看到的模块Id数组/数据库 dbo.UserModuleListByFunctionId函数public static int UserModuleListByFunctionId(int Us
42、erId, int FunctionId) DocMgrs.SqlHand sqlHand = new SqlHand(); DataSet ds = sqlHand.dataset(select * from dbo.UserModuleListByFunctionId( + UserId + , + FunctionId + ); int a = new intds.Tables0.Rows.Count; for (int i = 0; i ds.Tables0.Rows.Count; i+) ai = int.Parse(ds.Tables0.RowsiModuleId.ToString
43、(); return a;(12)查询用户在模块中所拥有的权限是哪个角色,返回角色Id数组/数据库 dbo.GetRoleList(UserId int,ModuleId int,FunctionId int)public static int GetRoleList(int UserId, int ModuleId, int FunctionId) DocMgrs.SqlHand sqlHand = new SqlHand(); DataSet ds = sqlHand.dataset(select * from dbo.GetRoleList( + UserId + , + ModuleId + , + FunctionId + ); int a = new intds.Tables0.Rows.Count; for