ASP\ASP.NET網(wǎng)站中怎么防止Access數(shù)據(jù)庫被別人下載_Access數(shù)據(jù)庫教程
推薦:在網(wǎng)頁上進行Access數(shù)據(jù)庫壓縮多年前給客戶做的數(shù)據(jù)庫,用得是 access,已經(jīng)兩年,長得非常大,有 1G 這么大。隨著您不斷添加、更新數(shù)據(jù)以及更改數(shù)據(jù)庫設(shè)計,數(shù)據(jù)庫文件會變得越來越大。導(dǎo)致增大的因素不僅包括新數(shù)據(jù),隨著數(shù)據(jù)庫文件不斷被遺留的臨時對象和已刪除對象所填充,其性能也會逐漸降低。
如何防止Access數(shù)據(jù)庫下載是一個很老的話題了,網(wǎng)上的討論也比較多。這里我們給出幾種在ASP.NET下防止Access數(shù)據(jù)庫被下載的方法。
我們這里假設(shè)Access數(shù)據(jù)庫名字為 test.mdb。
1、把數(shù)據(jù)庫放在WEB目錄外
如你的網(wǎng)站目錄是D:www,你可以把數(shù)據(jù)庫放到D:data 這個文件夾里,然后修改網(wǎng)站程序中的數(shù)據(jù)庫連接字串地址部分為:"D:datatest.mdb" ,這樣數(shù)據(jù)庫可以正常調(diào)用,但是無法下載的,因為它不在網(wǎng)站目錄里。
假設(shè)在web.config中配置數(shù)據(jù)庫連接字符串。例如:
<connectionStrings> <add name="Access" connectionString=" Provider=Microsoft.Jet.OLEDB.4.0;data source=d:datatest.mdb" providerName="System.Data.OleDb" /> </connectionStrings>2、把數(shù)據(jù)庫放在App_Data系統(tǒng)文件夾下
從.Net2.0開始有App_Data目錄來專門存放數(shù)據(jù)文件,它可以用來放Access,SQL Server Express、XML等數(shù)據(jù)文件。數(shù)據(jù)庫文件放到App_Data文件夾的好處就是可以防止被下載。而對于連接字符串?dāng)?shù)據(jù)庫的文件位置可以使用DataDirectory關(guān)鍵來表示它的物理路徑,從而在獲取連接字符串的時候不再需要使用Server.MapPath()轉(zhuǎn)換。
假設(shè)在web.config中配置數(shù)據(jù)庫連接字符串。例如:
<connectionStrings> <add name="Access" connectionString=" Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb" providerName="System.Data.OleDb" /> </connectionStrings>|DataDirectory|就是代表的app_data文件夾。
3、重命名數(shù)據(jù)庫文件
將你的 Access 重命名 *.asax:因為 ASP.NET 的處理機制中,默認(rèn)情況下,對這樣的請求是直接拒絕的。按照這個思路,還可以把 Access 重命名為 *.config,*.vb, *.cs 等等。
4、配置IIS,添加.mdb文件類型映射
添加.mdb的擴展映射這個方法就是通過修改IIS設(shè)置來實現(xiàn)。只需2個步驟。
1. 配置IIS,將.mdb文件類型映射到ASP.NET ISAPI。
以windows 2003為例,點擊“開始”-》運行-》輸入“inetmgr” 回車,打開“Internet 服務(wù)管理器”。在某一個網(wǎng)站上單擊鼠標(biāo)右鍵-》點擊“屬性” 彈出此站點的屬性對話框。點擊“主目錄”選項卡,點擊“配置”按鈕,則會顯示“應(yīng)用程序配置”對話框。點擊“添加”增加一個映射,這時會顯示一個對話框,要你輸入可執(zhí)行文件:“C:WINDOWS Microsoft.NET Framework v2.0.50727 aspnet_isapi.dll”;輸入擴展名:“.mdb”。如下圖所示

2. 配置asp.net的web.config文件,將.mdb文件類型映射到HttpForbiddenHandler HTTP handler。
使asp.net應(yīng)用程序.mdb文件類型映射到HttpForbiddenHandler HTTP 句柄。為了達到這上步,必須將下面的配置加到Web.config文件中
<httpHandlers> <add verb="*" path="*.mdb" type="System.Web.HttpForbiddenHandler" /> </httpHandlers>5、添加ACCESS防下載字段
該方法的原理是:將數(shù)據(jù)庫的擴展名變成.aspx格式,從遠(yuǎn)程訪問這個文件的時候,IIS服務(wù)器就會把它當(dāng)成aspx程序來執(zhí)行,而我們之前在ACCESS數(shù)據(jù)庫中插入了“<%”符號,而asp.net程序必須在“<%%>”標(biāo)記中才能執(zhí)行,所以就會出現(xiàn) “缺少腳本關(guān)閉標(biāo)記” 的500錯誤,別人就無法下載ACCESS數(shù)據(jù)庫了。如果只是簡單的在數(shù)據(jù)庫的文本或者備注字段加入“<%”是沒用的,因為ACCESS會對其中的內(nèi)容進行處理,在數(shù)據(jù)庫里他會以 <% 的形式存在,無效!正確的方法是將 <% 存入OLE對象字段里。方法如下:
1、先創(chuàng)建一個表,在SQL命令窗口內(nèi)輸入如下內(nèi)容:“create table [notdown]([notdown] oleobject)”
然后點擊工具欄中的“!”(運行),這樣,就會在當(dāng)前數(shù)據(jù)庫內(nèi)創(chuàng)建一個“notdown”表,其中的字段名稱為“notdown”,字段類型為“OLE對象”。 如圖1

(圖1)
2、將SQL查詢窗口中的內(nèi)容更改為如下命令:“insert into [notdown](notdown) values (0x3C25)”
這一句的意思是向“notdown”表的“notdown”字段中插入“0x3C25”數(shù)據(jù)(“0x3C25”為字符“<%”的16進制)。如圖2

(圖2)
執(zhí)行完畢后,再次查看數(shù)據(jù)庫中的“表”,就會發(fā)現(xiàn)其中已多了一個“notdown”表,打開后字段顯示的是“長二進制數(shù)據(jù)” 如圖3

(圖3)
admin10000.com 這里已經(jīng)做好的防下載數(shù)據(jù)表notdown,你可以直接下載粘貼到自己數(shù)據(jù)庫中使用。notdown數(shù)據(jù)表
提示1:無論是ASP網(wǎng)站中還是ASP.NET網(wǎng)站,對于直接把Access數(shù)據(jù)庫后綴直接改為.asp和.aspx,用FlashGet等下載工具都照下不誤,不能起到防下載作用。
提示2:第5種方法通常用在ASP+ACCESS網(wǎng)站中。
分享:Access數(shù)據(jù)庫多條數(shù)據(jù)Insert當(dāng)下Access數(shù)據(jù)庫可能要被遺忘了!比較這個輕量級數(shù)據(jù)庫被精簡了許多功能,個人感覺用起來還是挺麻煩的!當(dāng)前Access在企業(yè)項目中就是一塊雞肋。數(shù)據(jù)量小使用SQL Server是浪費,既然選擇了Access就別抱怨了!如果用好了還是一塊寶!廢話不多說了,今天就來探討下如何向A
- 在網(wǎng)頁上進行Access數(shù)據(jù)庫壓縮
- Access數(shù)據(jù)庫多條數(shù)據(jù)Insert
- Access 2010數(shù)據(jù)庫加密介紹
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報表打印如何自動分頁
- Access完成累計余額的計算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個表并可更新對應(yīng)的字段值具體實現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 相關(guān)鏈接:
復(fù)制本頁鏈接| 搜索ASP\ASP.NET網(wǎng)站中怎么防止Access數(shù)據(jù)庫被別人下載
- 教程說明:
Access數(shù)據(jù)庫教程-ASP\ASP.NET網(wǎng)站中怎么防止Access數(shù)據(jù)庫被別人下載
。