熊 巍
(江西省計算技術研究所,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,企業資源計劃)的需要,與單位其他管理系統實現數據聯通和共享,進一步推進單位信息化建設。