用ASP.NET实现基于三层架构的OA系统
摘要随着信息化水平的提高,办公自动化(Office Automation,OA)越来越受到人们的重视,而先进的工作流技术是当前办公自动化系统的核心,为了提高各部门之间的工作效率,增强协同办公能力,引入OA系统已十分必要。本文将阐述关于办公自动化的概念和基于.NET技术实现的OA系统过程中遇到的问题以及解决方案。
【关键词】ASP.NET OA 办公自动化
1 相关技术介绍
1.1 办公自动化(OA)
办公自动化(Office Automation,简称OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式。办公自动化没有统一的定义,凡是在传统的办公室中采用各种新技术、新机器、新设备从事办公业务,都属于办公自动化的领域。在行政机关中,大都把办公自动化叫做电子政务,企事业单位就都叫OA,即办公自动化。通过实现办公自动化,或者说实现数字化办公,可以优化现有的管理组织结构,调整管理体制,在提高效率的基础上,增加协同办公能力,强化决策的一致性,最后实现提高决策效能的目的。
1.2 三层架构
通常意义上的三层架构就是将整个业务应用划分为:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
1.3 ASP.NET技术
.NET技术是微软公司基于互联网平台的下一代你软件开发架构,其目标是要让所有的计算机群、相关设备和服务都能够在这一平台下协同工作,而不是传统的只注重于单个网络或者设备,它提高了更为广泛的空间和更加丰富的解决方案。利用ASP.NET编程技术开发OA系统有极大的优势,弥补了以往程序复用低、重复劳动大、浏览速度慢的缺点,推动了OA建设工程的发展。
1.4 注入式攻击
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。例如攻击者在用户名字和密码输入框中输入"'或'1'='1"之类的内容,这样得到最后的SQL命令就变为SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1',这样系统就会错误的授权给攻击者。
2 基于ASP.NET的OA实现
2.1 系统登录模块的实现
出于对系统安全级别的考虑,系统登录界面安全的控制通过对用户名和登录密码的校核,由于OA系统是基于网络的,所以登录设置中要有验证码,这样可以防止非人为的恶意登录。
此外,解决SQL注入式攻击问题也是必要的。最常用的方法是将用户登录名称、密码等数据加密保存,加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。另外通过用存储过程来执行所有查询或者检查用户输入的合法性也是防止SQL注入攻击的不错选择。
最后,一定要合理的设计User表,用户登录成功后,将需要的数据保存到session中,不仅可以判断用户是否登录,而且还减少了用户访问数据库操作节省了资源。
2.2 系统基础设施模块的实现
系统基础设施模块包括子功能模块如内部邮件,日程安排以及系统管理功能等。这可以通过一个ListTreeView控件实现,可以根据角色以及权限的不同构造不同的TreeNode结点。而右边是一个iframe框架,可以根据左边选择的不同无刷新的实现页面的显示。右边显示的界面都是独立的,程序员可以单独的修改具体界面,增强了程序的可维护性和移植性。TreeNode的具体代码如下所示:
2.3 信息管理功能模块的实现
主要完成对基本信息的增加、删除、修改、查找。信息的增加可以单条的增加也可以批量的导入。需要注意的是,如果对数据有特殊的格式的限制比如日期和用于计算的数字,可以通过javascript代码在前台进行限制。删除信息可以单条删除也可以批量的删除,查询功能可以按照一个字段或多个字段综合查询,查询的结果可以导入到Excel表里。此外对于修改和增加功能,可以跳转到另一个界面来完成,但是,考虑到用户体验,本功能可以利用AJAX里的ModalPopupExtender和Panel控件实现无刷新的动态显示。
2.4 其它注意事项
对于一些常用的函数,比如文件上传,绑定GridView等可以放到一个静态的PublicMethod类中,可以增加代码的重用,减少了后期维护遇到的困难。另外,需要注意的是,当项目完成时,在除登录界面外的其它界面加一个checkSession函数,判断用户是否登录,否则跳转到登录界面,增加了系统的安全性。
3 总结
随着创业公司的不断增多,OA系统的需求量也与日俱增,OA系统不仅改变了传统手工操作的繁琐、重复劳动、易出错等弊端,同时大大提高了办公效率。本文所介绍的都是常见的问题及解决方案,具体做法还得根据具体要求具体分析。
参考文献
[1]何银川,朱胜利.现代计算机[J].2013.
作者单位
大连理工大学软件学院辽宁省大连市116001