论文部分内容阅读
摘 要:校务信箱系统是高校电子政务的重要组成部分,在学校日常管理中起着很重要的作用。本文论述了基于ASP.NET和SQL Server2000的校务信箱系统的设计与实现技术,对系统的功能模型与数据库结构进行了分析,对信箱的分级、有效管理等进行了详细阐述。
关键词:校务信箱 ASP.NET B/S模式 分级管理
中图分类号:TP319 文献标识码:B 文章编号:1673-8454(2008)19-0051-03
为了及时了解师生对学校的改革、发展与建设各方面工作的意见和建议,广开言路、加强沟通、民主治校,各高校都建立了校长信箱。本文以高校校长信箱为研究对象,探索其发展的新趋势、新模式,采用ASP.NET技术,提出了分层管理的高校校务信箱系统。校务信箱分为校长信箱和各单位信箱,除校长信箱外,每个信箱彼此独立,能够完成独立功能、独立后台管理,校长信箱能够对各单位信箱进行监督管理。各单位信箱有自动监控功能,三天不处理的来信系统将自动给予警告并发送到校长信箱中。各单位信箱删除的来信系统将自动发送到校长信箱的垃圾箱中,校长信箱中能够查看被删除来信并能够统计各单位被删除信件数量,能够统计出各单位的总来信数量、回复信件数量,并计算出各单位的信件回复率。校务信箱还有发布公告、来信置顶、信件转移、各单位间发送短消息等功能。该校务信箱系统极大地提高了办事效率,保证了信息传递的准确性和及时性,实现了信息的有效保存、检索和统计,激励了学校各职能部门的工作热情。
一、系统分析与设计
1.系统体系结构
本系统采用了B/S三层体系结构,即表示层、业务层和数据层;使用IIS架设Web站点;Asp.net通过Ado.net访问数据库。对数据库的访问和应用程序的执行均在Web服务器端完成,客户端无须安装任何专门的软件,通过浏览器即可访问Web服务器并运行其程序。采用这种体系结构的系统充分利用了服务器资源,提供了跨平台、简单一致的应用环境,减少了系统开发和维护的工作量,便于后期的维护和升级。系统的体系结构如图1所示。
2.系统功能设计
(4)短消息信息表(Master_Mess):用于存放各单位信箱管理人员之间相互联系的短消息等信息。
(5)信件转移信息表(Master_Move):用于存放各单位信箱中所有转移的信件记录信息,方便来信人查找自己的信件。
二、系统主要功能的实现及关键技术
1.数据库的连接和基本操作
Asp.net使用Ado.net实现对数据库的连接和访问。对于SQL SERVER 2000数据库来说,提供了包含SqlConnection、SqlCommand、SqlAdapter等对象专门进行数据库操作。简单操作过程举例如下:
(1)数据库连接字符串以变量的形式存放在网站根目录下的系统配置文件Web.config中,这样可以使配置信息与源程序分开,方便日后修改和维护。
<configuration>
<appSettings>
<add key=”ConnStr” value=”server=(local);uid=db;pwd=mail;database=mail”/>
</appSettings>
......
</configuration>
(2)创建一个数据库连接和操作的类文件TSqlDB.cs,专门用于进行数据库的连接和操作。
Using System;
Using System.Data;
Using System.Data.SqlClient; //引入命名空间
Public class TSqlDB {
Protected static SqlConnection GetConn() //返回数据库连接信息
{return new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[“ConnStr”]);}
//用于执行insert、update、delete等查询,返回受影响的行数
Public static int ExecuteNonQuery(string Query) {
int Result;
SqlConnection FConnection = GetConn();
FConnection.Open();
SqlCommand FCommand = new SqlCommand(Query,FConnection);
Result = FCommand.ExecuteNonQuery();
FConnection.Close();
retrun Result;}}
(3)在其他文件中引用TSqlDB类,数据库连接操作如下:
TSqlDB oDB = new TSqlDB();//先实例化TSqlDB
SqlConnection myconn = oDB.GetConn();
myconn.Open();//打开数据连接
而执行简单查询只需要调用“类方法”的形式就可以了。下面以一个delete数据库操作为例:
TSqlDB myDB = new TSqlDB();
string SqlStr = “delete from Master_Mail where MailId=123”;
TSqlDB.ExecuteNonQuery(SqlStr);//执行数据删除操作
以上只是以数据库连接和数据库查询操作为例进行了简单说明,其实数据库的操作还有很多,我们可以将所有的数据操作层面上的行为全部封装到一个类中,这样可以大大增强程序的可扩展性。
2.系统安全设计
(1)用户身份验证。该系统有主管理员、二级管理员和普通用户三个不同用户权限。通过对不同的登录用户设置相应的Session全局变量,完成不同权限的用户身份验证。为了增强安全性,本系统在用户登录时将口令先进行MD5加密,再与数据库里的加密值比较,相符的可成功登录,否则登录失败。
(2)数据库安全认证机制。通过设计合理的用户策略,为用户设置合适的角色及访问许可,即将数据库访问和使用权限限制到仍然保留功能性的最小权限集。比如,避免使用系统管理员权限访问数据库,并对数据库访问账号密码进行加密运算。
(3)防止SQL注入攻击。如今很多网站遭到的攻击绝大多数都是SQL注入攻击,我们在编写程序时对此需要高度重视。防止SQL注入攻击,要做到:一是过滤或转义危险字符。这是最简单最常用的方法,即从用户输入中移除危险字符,如insert、update、delete等危险SQL命令,或者使数据库将危险字符作为文字对待。二是使用SqlParameter的集合类。它可以提供类型和长度检查,并且自动转义用户输入。三是用正则表达式限制输入。如对表单中文本框的值,就可以用正则表达式控件来限制其输入。四是在服务器端处理错误。系统错误消息可以给攻击者提供数据库中的许多详细信息,如果在Try和Catch语句中隐藏数据库行为,并在服务器端正确处理错误,就可以避免攻击者收集信息。
3.数据定制打印技术
根据学校工作实际流程,用户来信不可能每封都能直接进行回复,大多数信件需要打印成纸质文件,下发到具体负责人答复。为提高工作效率,纸质文件需要按照办公函件规定格式打印,对来信人、联系方式、来信内容、来信时间和领导批复意见、回信区域、回信单位、回信时间等信息按表格格式清晰呈现。这显然不是IE直接打印可以办到的,我们可以通过在页面HTML文档中编写一段JavaScript脚本来实现网页中的某一段按照规定格式打印。具体程序代码为:
function PrintScore(){
var idhtml,titlehtml,contenthtml,replyhtml,prnhtml;
//读取表单中Label控件的值,printinfo为自定义的表单名
idhtml=document.printinfo.label1.value;
titlehtml=document.printinfo.label2.value;
contenthtml=document.printinfo.label3.value;
replyhtml=document.printinfo.label4.value;
//定义打印表格格式,这里简单举例,可以按照需求增加更多样式
prnhtml="
"
//截取打印文档HTML字符,将打印页HTML覆盖成该页HTML
window.document.body.innerHTML=prnhtml;
window.print();//对该页进行打印}
需要注意的是:一是要将表单定义为printinfo,并将数据库中的相关字段读取到文本控件中,举例为。二是在页面body属性中加入onload事件,并将其定义为PrintScore函数,页面打开时即运行自定义的打印函数。
三、结束语
本文提出了用ASP.NET 技术设计与实现网上校务信箱系统,并论述了系统几个关键技术的实现方法。目前,系统在我校使用一年多来,累计处理信件15000多封,在学校日常管理中起到了较大作用。并且,系统已经在几所兄弟院校使用,得到了很好的评价。
参考文献:
[1]万峰科技.ASP.NET网站开发四酷全书[M].北京:电子工业出版社,2006.5.
[2]John Kauffman等.ASP.NET数据库入门经典[M].北京:清华大学出版社,2002.10.
[3]王红雨,蔡成闻.基于ASP.NET的课程平台设计与实现[J].北京:聊城大学学报,2007(3).
关键词:校务信箱 ASP.NET B/S模式 分级管理
中图分类号:TP319 文献标识码:B 文章编号:1673-8454(2008)19-0051-03
为了及时了解师生对学校的改革、发展与建设各方面工作的意见和建议,广开言路、加强沟通、民主治校,各高校都建立了校长信箱。本文以高校校长信箱为研究对象,探索其发展的新趋势、新模式,采用ASP.NET技术,提出了分层管理的高校校务信箱系统。校务信箱分为校长信箱和各单位信箱,除校长信箱外,每个信箱彼此独立,能够完成独立功能、独立后台管理,校长信箱能够对各单位信箱进行监督管理。各单位信箱有自动监控功能,三天不处理的来信系统将自动给予警告并发送到校长信箱中。各单位信箱删除的来信系统将自动发送到校长信箱的垃圾箱中,校长信箱中能够查看被删除来信并能够统计各单位被删除信件数量,能够统计出各单位的总来信数量、回复信件数量,并计算出各单位的信件回复率。校务信箱还有发布公告、来信置顶、信件转移、各单位间发送短消息等功能。该校务信箱系统极大地提高了办事效率,保证了信息传递的准确性和及时性,实现了信息的有效保存、检索和统计,激励了学校各职能部门的工作热情。
一、系统分析与设计
1.系统体系结构
本系统采用了B/S三层体系结构,即表示层、业务层和数据层;使用IIS架设Web站点;Asp.net通过Ado.net访问数据库。对数据库的访问和应用程序的执行均在Web服务器端完成,客户端无须安装任何专门的软件,通过浏览器即可访问Web服务器并运行其程序。采用这种体系结构的系统充分利用了服务器资源,提供了跨平台、简单一致的应用环境,减少了系统开发和维护的工作量,便于后期的维护和升级。系统的体系结构如图1所示。
2.系统功能设计
(4)短消息信息表(Master_Mess):用于存放各单位信箱管理人员之间相互联系的短消息等信息。
(5)信件转移信息表(Master_Move):用于存放各单位信箱中所有转移的信件记录信息,方便来信人查找自己的信件。
二、系统主要功能的实现及关键技术
1.数据库的连接和基本操作
Asp.net使用Ado.net实现对数据库的连接和访问。对于SQL SERVER 2000数据库来说,提供了包含SqlConnection、SqlCommand、SqlAdapter等对象专门进行数据库操作。简单操作过程举例如下:
(1)数据库连接字符串以变量的形式存放在网站根目录下的系统配置文件Web.config中,这样可以使配置信息与源程序分开,方便日后修改和维护。
<configuration>
<appSettings>
<add key=”ConnStr” value=”server=(local);uid=db;pwd=mail;database=mail”/>
</appSettings>
......
</configuration>
(2)创建一个数据库连接和操作的类文件TSqlDB.cs,专门用于进行数据库的连接和操作。
Using System;
Using System.Data;
Using System.Data.SqlClient; //引入命名空间
Public class TSqlDB {
Protected static SqlConnection GetConn() //返回数据库连接信息
{return new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[“ConnStr”]);}
//用于执行insert、update、delete等查询,返回受影响的行数
Public static int ExecuteNonQuery(string Query) {
int Result;
SqlConnection FConnection = GetConn();
FConnection.Open();
SqlCommand FCommand = new SqlCommand(Query,FConnection);
Result = FCommand.ExecuteNonQuery();
FConnection.Close();
retrun Result;}}
(3)在其他文件中引用TSqlDB类,数据库连接操作如下:
TSqlDB oDB = new TSqlDB();//先实例化TSqlDB
SqlConnection myconn = oDB.GetConn();
myconn.Open();//打开数据连接
而执行简单查询只需要调用“类方法”的形式就可以了。下面以一个delete数据库操作为例:
TSqlDB myDB = new TSqlDB();
string SqlStr = “delete from Master_Mail where MailId=123”;
TSqlDB.ExecuteNonQuery(SqlStr);//执行数据删除操作
以上只是以数据库连接和数据库查询操作为例进行了简单说明,其实数据库的操作还有很多,我们可以将所有的数据操作层面上的行为全部封装到一个类中,这样可以大大增强程序的可扩展性。
2.系统安全设计
(1)用户身份验证。该系统有主管理员、二级管理员和普通用户三个不同用户权限。通过对不同的登录用户设置相应的Session全局变量,完成不同权限的用户身份验证。为了增强安全性,本系统在用户登录时将口令先进行MD5加密,再与数据库里的加密值比较,相符的可成功登录,否则登录失败。
(2)数据库安全认证机制。通过设计合理的用户策略,为用户设置合适的角色及访问许可,即将数据库访问和使用权限限制到仍然保留功能性的最小权限集。比如,避免使用系统管理员权限访问数据库,并对数据库访问账号密码进行加密运算。
(3)防止SQL注入攻击。如今很多网站遭到的攻击绝大多数都是SQL注入攻击,我们在编写程序时对此需要高度重视。防止SQL注入攻击,要做到:一是过滤或转义危险字符。这是最简单最常用的方法,即从用户输入中移除危险字符,如insert、update、delete等危险SQL命令,或者使数据库将危险字符作为文字对待。二是使用SqlParameter的集合类。它可以提供类型和长度检查,并且自动转义用户输入。三是用正则表达式限制输入。如对表单中文本框的值,就可以用正则表达式控件来限制其输入。四是在服务器端处理错误。系统错误消息可以给攻击者提供数据库中的许多详细信息,如果在Try和Catch语句中隐藏数据库行为,并在服务器端正确处理错误,就可以避免攻击者收集信息。
3.数据定制打印技术
根据学校工作实际流程,用户来信不可能每封都能直接进行回复,大多数信件需要打印成纸质文件,下发到具体负责人答复。为提高工作效率,纸质文件需要按照办公函件规定格式打印,对来信人、联系方式、来信内容、来信时间和领导批复意见、回信区域、回信单位、回信时间等信息按表格格式清晰呈现。这显然不是IE直接打印可以办到的,我们可以通过在页面HTML文档中编写一段JavaScript脚本来实现网页中的某一段按照规定格式打印。具体程序代码为:
function PrintScore(){
var idhtml,titlehtml,contenthtml,replyhtml,prnhtml;
//读取表单中Label控件的值,printinfo为自定义的表单名
idhtml=document.printinfo.label1.value;
titlehtml=document.printinfo.label2.value;
contenthtml=document.printinfo.label3.value;
replyhtml=document.printinfo.label4.value;
//定义打印表格格式,这里简单举例,可以按照需求增加更多样式
prnhtml="
===校务信箱第" idhtml "号来信=== |
" titlehtml " |
" contenthtml " |
" replyhtml " |
//截取打印文档HTML字符,将打印页HTML覆盖成该页HTML
window.document.body.innerHTML=prnhtml;
window.print();//对该页进行打印}
需要注意的是:一是要将表单定义为printinfo,并将数据库中的相关字段读取到文本控件中,举例为。二是在页面body属性中加入onload事件,并将其定义为PrintScore函数,页面打开时即运行自定义的打印函数。
三、结束语
本文提出了用ASP.NET 技术设计与实现网上校务信箱系统,并论述了系统几个关键技术的实现方法。目前,系统在我校使用一年多来,累计处理信件15000多封,在学校日常管理中起到了较大作用。并且,系统已经在几所兄弟院校使用,得到了很好的评价。
参考文献:
[1]万峰科技.ASP.NET网站开发四酷全书[M].北京:电子工业出版社,2006.5.
[2]John Kauffman等.ASP.NET数据库入门经典[M].北京:清华大学出版社,2002.10.
[3]王红雨,蔡成闻.基于ASP.NET的课程平台设计与实现[J].北京:聊城大学学报,2007(3).