近期在開發(fā)某公司的OA系統(tǒng)的后臺(tái)時(shí)有一個(gè)關(guān)于ACCESS數(shù)據(jù)庫的問題。
為了防止數(shù)據(jù)庫為不懷好意的人下載,需要更改數(shù)據(jù)庫的后綴名為ASPX(ASP等其它也可以),而公司內(nèi)部人員又需要通過IE來下載數(shù)據(jù)庫實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)行備份。
當(dāng)然,通過修改文件名后綴的方法來隱藏?cái)?shù)據(jù)庫并不是有個(gè)特別安全的方法,畢竟以M為單位的數(shù)據(jù)庫和以K為單位的ASPX頁面相比,一眼都能看出這到底是數(shù)據(jù)庫還是WEB頁。不過,算是一個(gè)簡單易行的方法吧。
首先,純粹簡單地修改數(shù)據(jù)庫文件后綴名為ASPX并不能完全保證不會(huì)被下載,你下載這個(gè)ASPX頁面再修改回后綴名就可以還原數(shù)據(jù)庫。(前面說了,是可以很明顯的看出哪些頁面是由數(shù)據(jù)庫假裝的)
這里需要對(duì)這個(gè)修改后的文件做些手腳,加上<%%>,就可以讓IIS把它當(dāng)ASPX頁處理,從而返回一個(gè)錯(cuò)誤,而不是下載。并不能簡單添加,需要先建立一個(gè)包含<%%>的文本文件,然后在原數(shù)據(jù)庫中加一張表,加一個(gè)OLE對(duì)象的字段,然后加一條記錄,OLE對(duì)象字段的內(nèi)容指向前面建立的文本。
然后是關(guān)于自己內(nèi)部的人員如何來正常下載數(shù)據(jù)庫。通過.NET的HttpResponse對(duì)象向客戶端輸入數(shù)據(jù)庫文件來實(shí)現(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);
基本就是這樣吧。
新聞熱點(diǎn)
疑難解答
圖片精選