熊 巍
(江西省计算技术研究所,330002,南昌)
当前各企事业单位越来越多地采用信息化技术进行管理。每年对员工进行绩效考核是单位管理的一项重要内容。以往的员工考核采用纸质材料,由被考核人、考核人和各级领导填写、打分,这种方式存在着浪费纸张、传递效率低、存档占用空间大等缺点,难以适应单位管理需求。现在采用计算机和网络技术对员工进行网上考核,能够克服以上不足,提升单位的管理效率[1]。本文介绍了一种基于ASP.NET的员工考核系统的设计与实现,它采用ASP.NET技术开发,具有易于部署、方便扩展、系统安全性高等特点,适合各类企事业单位使用。
本系统用户分为被考核人、考核人、系统管理员3类,系统主要功能如下。
1)被考核人:新建考核,填写工作内容和自我评价,提交给考核人。
2)考核人:分为直接考核人和上级考核人,直接考核人是被考核人的直接主管,上级考核人有一个或多个,是被考核人所在部门的分管领导和单位负责人,考核人负责对被考核人的工作业绩进行审核、评价、打分,上级考核人对下一级考核人的意见进行修改、补充,最终形成考核结果。
3)系统管理员:负责创建考核任务,创建和管理用户,分配角色和权限,考核结果查询、生成统计报表、系统字典维护等。
基于ASP.NET的员工考核系统使用Visual Studio 2019 集成开发环境开发,前台页面使用ASP.NET Core 3.0编写,后台程序使用C# 7.3语言编写,数据库使用SQL Server 2017,系统运行环境使用.NET Framework 4.7.2[2]。
员工考核系统按功能分为以下模块(图1)。
图1 员工考核系统功能模块图
2.2.1 用户登录登出 对系统中的每个合法用户,输入账号和密码,系统验证无误后,准许进入系统,显示其相应的功能菜单,用户操作结束后,登出系统。
2.2.2 被考核人功能
1)参加考核:被考核人填写工作内容和自我评价,可保存供以后修改,确认填写完成后,提交至考核人。
2)修改考核信息:被考核人可修改尚未提交的考核信息。
3)查看考核结果:对于上级已经完成的考核,可查看考核结果。
2.2.3 考核人功能
1)评价打分:直接考核人针对被考核人填写的工作内容进行审核,给出初步考核分数和建议考核结果,提交给上级考核人。
2)修改考核结果:上级考核人根据直接考核人的建议考核结果,进行修改和补充,最后由单位负责人给出最终考核结果。
3)查询考核信息:考核人可以按照考核时间、部门、姓名等查询员工考核信息。
2.2.4 系统管理员功能
1)考核任务管理:创建和维护新的考核任务。
2)用户管理:创建和维护系统中的各用户信息。
3)考核任务分配:对于新创建的考核任务,为每个考核人,分配他的被考核人。
4)考核信息查询:对于系统中的考核信息,可以按照时间、部门、姓名、分数等条件进行查询。
5)生成统计报表:对于考核结果信息,可以按照人员、部门、时间、考核结果分值段等标准生成统计图表和报表等。
6)系统字典维护:系统中字典信息的维护,包括考核项目(工作态度、业绩完成情况、创新性、工作积极性等)、考核结果(优秀、良好、正常、不称职)、考核时间段(月度考核、季度考核、年度考核)等表。
系统主要数据表和字段如下。
2.3.1 考核任务表Appr_Task 存储考评任务信息,主要字段:考核任务编号(主键)、考核任务名称、考核任务描述、考核指标集(包括多个考核指标及分数上下限)。
2.3.2 用户信息表Appr_Users 存储用户信息,主要字段:用户编号(主键)、用户名、密码、用户姓名、工号码、所属部门、手机号码、用户类型(被考评人、考评人、系统管理员)。
2.3.3 考评分配表Appr_Dist 存储考评分配信息,主要字段:考评分配编号(主键)、考评人编号(外键)、被考评人编号(外键)、被考评人部门。
2.3.4 考评表Appraise 存储每个员工的考评结果信息,主要字段:考评分配编号(主键)、员工工作内容、员工自我评价、上级评价、考评结果(优秀、良好、正常、不称职)。
2.3.5 考评指标集表Appr_Index 存储考评指标集信息,主要字段:考评指标集编号(主键)、考评指标、分值上限、分值下限。
3.1.1 .NET技术 .NET Framework是微软提供的跨平台应用软件开发和运行框架。它将应用程序编译成MSIL(Microsoft Intermediate Language,一种中间语言,类似于Java字节码)解释执行,从而实现程序的安全执行环境,如类型安全检查、自动垃圾回收等[3]。
3.1.2 ASP.NET技术 ASP.NET是基于.NET Framework的Web开发技术。它将服务器端功能封装为控件。用户可以用面向对象的方式开发Web应用[4]。
本系统处理流程如图2所示[5-10]。
图2 员工考核系统处理流程图
3.2.1 用户登录 用户输入用户名和密码后,系统在用户数据表中查询,如果用户名和密码一致,则用户身份确认,进入系统,在服务器端记录相应的Session对象,包括用户名、用户权限等信息,在用户登录系统进行操作期间,这些信息将一直保留在服务器端,供系统运行时读取用户信息。为防止恶意用户猜测密码,系统只允许每个用户登录时输入3次密码,如果用户连续输错3次密码,则系统将锁定。
3.2.2 被考核人流程 普通员工登录后,将作为被考核人角色。被考核人点击“参加考核”,则系统将在考核分配表中根据用户编号查询该用户可以参加的考核任务,用户填写完工作内容和自我评价后,系统将在考核表中生成一条新记录。用户下次登录系统后,如果上次输入的考核任务还没有提交,则还可以修改上次输入的考核内容,直至用户确定已填写完整无误,则点击“提交”,考核任务将被提交至用户的上级主管也就是考核人处。在考评表中设置一个字段,记录该条记录的状态,刚刚创建这条记录时的状态为“未提交”,当用户提交后则状态改为“已提交”。
3.2.3 考核人流程 员工的直接主管也就是直接考核人登录系统后,如果有下属提交考核内容,则可以对下属的各项考核指标进行打分,填写工作评价,并给出初步考核等级。如果主管觉得下属填写的工作内容不准确或不完整,则可以将考核内容退回给下属修改。主管评价完成后,将提交给上级领导审核。
上级领导也是考核人角色,领导登录系统后,如果有直接主管提交考核内容,领导审核员工的工作内容和主管的初步考核结果,可以填写修改或补充意见,然后提交给单位负责人。领导也可以将考核内容退回给直接主管修改。
同样,单位负责人登录系统后,将对下级提交的考核内容进行审核,并给出最终评定结果。也可以将考核内容退回给下级修改。
3.2.4 系统管理员流程 系统管理员创建新的考核任务,之后对这个考核任务,分配考核人和被考核人。同时负责维护系统数据和字典。并生成统计报表。
3.3.1 预防XSS脚本攻击 反射型XSS漏洞(Cross Site Scripting,跨站脚本攻击)指在浏览器地址栏输入带有恶意代码的URL来实现攻击。例如:url:http://192.15.1.117/main.aspx?username=admin”onmouseover=alert(1)bad="&limit=010203040506,参数username存在反射型XSS,未对双引号进行html转义,访问上述url,将执行攻击者注入的恶意代码。解决办法:使用Server.HtmlEncode方法对URL中的字符串进行编码,使得诸如双引号之类的字符变成“"”的形式[11-14]。
3.3.2 登录验证 存在未授权访问漏洞,有些aspx文件在未登录情况下能够通过直接在浏览器地址栏输入文件名访问。解决办法:通过在服务器端代码中加入检查是否登录Session来限制访问:
if(Session["username"]== null)
{
Response.Write("");
return;
}
基于ASP.NET的员工考核系统已经开发完成并在单位管理中获得实际应用。实践证明,它可以较好地满足企事业单位的员工绩效考核需求,下一步要适应ERP(Enterprise Resource Plan,企业资源计划)的需要,与单位其他管理系统实现数据联通和共享,进一步推进单位信息化建设。