設計 相關的實現技術
1、典型資料表的設計
在收發文管理系統中,任意收文或發文檔案都對應一個預設流程(事先已經定義好了),檔案按照流程中指定的步驟逐次向下流轉。以某收文流程為例有:收文登記—〉主任擬辦—〉領導批辦—〉處室承辦—〉送交歸檔。為了對檔案進行即時跟蹤,及時監督它的流向進程或者考察在某些階段處理的詳細情況,這就要求我們提供兩個重要的資料表,在本系統中為資料表gw_mrlc和資料表gw_cllc。
其中,gw_mrlc(wdlx,lcmc,ry,xh,clm,clr)記錄了系統中用到的各預設流程的資訊。Wdlx指文件類型,收文或者發文;lcmc指流程名稱;ry指定義該預設流程的人員;xh對應預設流程中各步驟的順序號,它有大小之分,小的則表示步驟在前,系統將先執行;clm對應預設流程中各步驟的名稱;clr對應預設流程中各步驟的處理人員。
Gw_mrlc僅是記錄了各流程的資訊,還需要gw_cllc(lxh,lcmc,xh,clr,jbrq,clrq,clyj,zt,wjm)來追蹤檔案在流程中的執行狀況。對於任意收發文檔案在系統中都會有各自唯一的流程與之一一對應,lxh則記錄了該流程的序號;lcmc,xh,clr同上所定義;jbrq,clrq,clyj,zt,wjm都是針對該流程中順序號為xh的各個處理步驟而言,jbrq指上一個步驟處理完畢提交過來時的日期;clrq指當前步驟處理完畢時的日期;clyj指當前步驟的處理意見;zt指當前步驟的處理狀態,已經處理還是尚未處理,以方便檔案的即時跟蹤;wjm則記錄了檔案的本文內容和在流轉過程中檔案的修改痕迹,具體的可以通過檔案上傳功能來實現。
2、使用Session進行登入驗證
ASP代碼使用表單實現互動,而相應的內容會反映在瀏覽器的地址欄中,如果不採用適當的安全措施,只要記下這些內容,就可以繞過驗證直接進入某一頁面。例如在瀏覽器中敲入“...xx.asp?flag=1”,即可不經過表單頁面直接進入滿足“flag=1”條件的頁面。
為防止未經註冊的使用者繞過註冊介面直接進入應用系統,我們採用Session對象進行註冊驗證。例如,我們製作了下面的註冊頁面。
<%’讀取使用者登入的資訊
Luser=ltrim(Request("User"))
Lpass=Request("Pass")
’檢驗帳號和密碼是否正確
if Luser=rs(“userid”) and Lpass= rs(“password”) then
Session("sysuser")=Luser ’使用Session對象進行使用者登入驗證
…
else
response.write “您的輸入不正確!”
response.end
end if
%>
在應用系統的其他WEB頁,首先要進行Session對象的驗證。如果你未通過使用者登入介面,那麼Session("sysuser")就為空白值,你將無法使用系統提供的任何功能,除非你是合法使用者才可,這樣就在一定程度上保證了系統的安全性。其驗證代碼如下:
<%
if session("sysuser ")="" then
response.write("對不起,你還沒有<a href='../login.asp' target='_top'>登入</a>。")
else
…
end if
%>
3、對ASP頁面進行加密
為有效防止ASP原始碼泄露,可以對ASP頁面進行加密。我們曾採用兩種方法對ASP頁面進行加密。一是使用組件技術將編程邏輯封裝入DLL之中;二是使用微軟的ScriptEncoder對ASP頁面進行加密。使用組件技術存在的主要問題是每段代碼均需組件化,操作比較繁瑣,工作量較大,而使用Encoder對ASP頁進行加密,操作簡單,收效良好。
ScriptEncoder的運行程式是SCRENC.EXE,使用方法是:
SCRENC [/s][/f][/xl][/ldefLanguage][/edefExtention]inputfile outputfile
其中:/s是屏蔽螢幕輸出;/f指定輸出檔案是否覆蓋同名輸入檔案;/xl指是否在.asp檔案的頂部添加@Language指令;/ldefLanguage指定預設的指令碼語言;/edefExtention指定待加密檔案的副檔名。
4、預存程序的使用
使用預存程序不僅可以提高查詢速度,而且可以保證事務的完整性。在該系統中,每個檔案對應唯一的流水號,當有新的檔案要入庫時流水號就會自動加一。由於所有的使用者都在網上,那麼兩個檔案同時入庫的情況就有可能發生,為了保證流水號的唯一性,就要求“取流水號”和“流水號加一”作為一個事務來完成。ASP調用預存程序比調用SQL語句要複雜一些,必須用ADO組件中的命令對象,步驟如下:
建立一個ADO命令對象,把Commandtext屬性為預存程序名,Commandtype屬性為4,表示該命令是調用預存程序為命令對象建立參數。
用“命令對象.CreateParameter(參數名稱,類型,方向,長度)”命令建立對應與預存程序的輸人、輸出參數。
用“命令對象.Parameters(參數名稱).Value=參數值”命令給輸人蔘數賦值。
用“命令對象.Parameters.Append參數名稱”命令將各個參數加入到命令對象的參數集合中。
“命令對象.Execute”執行預存程序。
“變數名=命令對象.Parameters(輸出參數名稱).Value”得到輸出參數值。
結束語
基於B/S模式開發的收發文管理系統的實現,無疑會使傳統的以手工為主的辦公方式和辦公手段,向科學化、正常化、高效化和資訊化轉變。可以預計,隨著辦公資訊量的增加和資訊化程度的提高,電子辦公將是未來辦公的發展方向。