近期在開發(fā)某公司的OA系統(tǒng)的后臺時有一個關(guān)于ACCESS數(shù)據(jù)庫的問題。 為了防止數(shù)據(jù)庫為不懷好意的人下載,需要更改數(shù)據(jù)庫的后綴名為ASPX(ASP等其它也可以),而公司內(nèi)部人員又需要通過IE來下載數(shù)據(jù)庫實現(xiàn)對數(shù)據(jù)庫進行備份。 當然,通過修改文件名后綴的方法來
近期在開發(fā)某公司的OA系統(tǒng)的后臺時有一個關(guān)于ACCESS數(shù)據(jù)庫的問題。
為了防止數(shù)據(jù)庫為不懷好意的人下載,需要更改數(shù)據(jù)庫的后綴名為ASPX(ASP等其它也可以),而公司內(nèi)部人員又需要通過IE來下載數(shù)據(jù)庫實現(xiàn)對數(shù)據(jù)庫進行備份。
當然,通過修改文件名后綴的方法來隱藏數(shù)據(jù)庫并不是有個特別安全的方法,畢竟以M為單位的數(shù)據(jù)庫和以K為單位的ASPX頁面相比,一眼都能看出這到底是數(shù)據(jù)庫還是WEB頁。不過,算是一個簡單易行的方法吧。
首先,純粹簡單地修改數(shù)據(jù)庫文件后綴名為ASPX并不能完全保證不會被下載,你下載這個ASPX頁面再修改回后綴名就可以還原數(shù)據(jù)庫。(前面說了,是可以很明顯的看出哪些頁面是由數(shù)據(jù)庫假裝的)
這里需要對這個修改后的文件做些手腳,加上<%%>,就可以讓IIS把它當ASPX頁處理,從而返回一個錯誤,而不是下載。并不能簡單添加,需要先建立一個包含<%%>的文本文件,然后在原數(shù)據(jù)庫中加一張表,加一個OLE對象的字段,然后加一條記錄,OLE對象字段的內(nèi)容指向前面建立的文本。
然后是關(guān)于自己內(nèi)部的人員如何來正常下載數(shù)據(jù)庫。通過.NET的HttpResponse對象向客戶端輸入數(shù)據(jù)庫文件來實現(xiàn)下載。
修改HTTP頭:
HttpContext.Current.Response.AppendHeader("Content-disposition","attachment;filename=backup.mdb");
HttpContext.Current.Response.ContentType ="application/ms-access";
向客戶端輸入文件:
long FileSize = new FileInfo(DbPath).Length;
Response.WriteFile(DbPath , 0 , FileSize);
基本就是這樣吧~
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com