.NET防止地址欄直接下載,保護網(wǎng)站上文檔、附件的方法-創(chuàng)新互聯(lián)

.net網(wǎng)站上上傳的各類文檔、附件,由于保密、版權(quán)等原因,不希望被未被授權(quán)的用戶下載,同時登錄了的用戶可以根據(jù)授權(quán)進行下載,服務(wù)器如果不做特殊處理,只要知道了文檔附件的實際地址,無法防止非法下載,網(wǎng)上介紹的改變IIS映射、修改web.config再自定義httphandler判斷登錄與否的方法操作復雜,不易實現(xiàn),經(jīng)對自己網(wǎng)站的研究,找到了一種比較方便實現(xiàn)的方法。

創(chuàng)新互聯(lián)專業(yè)提供重慶服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買重慶服務(wù)器托管服務(wù),并享受7*24小時金牌售后服務(wù)。

    總體思路是:一、禁止相關(guān)文件夾內(nèi)指定的文件類型可通過瀏覽器訪問;二、使用一個下載模塊通過物理地址以文件流的方式下載附件,同時可在下載模塊中進一步判斷權(quán)限。

    一、禁止指定類型附件的訪問

                   在指定文件夾(如:UploadFiles)內(nèi)新建一個web.config文件,內(nèi)容為:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <security>

           <requestFiltering>

               <fileExtensions>

                    <addfileExtension=".rar" allowed="false" />

                                               <addfileExtension=".zip" allowed="false" />

                    <addfileExtension=".xls" allowed="false" />

                                               <addfileExtension=".xlsx" allowed="false" />

                    <addfileExtension=".docx" allowed="false" />

                    <addfileExtension=".doc" allowed="false" />

                    <addfileExtension=".pdf" allowed="false" />

                                               <addfileExtension=".swf" allowed="false" />

                    <addfileExtension=".ceb" allowed="false" />

               </fileExtensions>

           </requestFiltering>

        </security>

    </system.webServer>

</configuration>

    這樣UploadFiles文件夾內(nèi)的上述擴展名的文件就不能通過瀏覽器直接訪問了,如果是想對整個網(wǎng)站進行限制,以上內(nèi)容就寫入根部web.config相關(guān)的節(jié),上面這些設(shè)置也可以在IIS管理器的“請求篩選”中完成。

二、使用下載模塊處理下載

    新建一個aspx程序downatt.aspx:

    downatt.aspx代碼:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="downAtt.aspx.cs"Inherits="downAtt"%>

   downatt.aspx.cs代碼:

using System;

public partialclassdownAtt : System.Web.UI.Page

{

protectedvoidPage_Load(object sender, EventArgse)

    {

stringfilepath = Server.MapPath(Request.QueryString["file"]);//取文件“file”的物理路徑

string[]filename1 = filepath.Split('/');

stringfilename = filename1[filename1.Length-1];//取得文件名

                   System.IO.FileInfo file = newSystem.IO.FileInfo(filepath);

        Response.Clear();

//        Response.ContentEncoding = System.Text.Encoding.UTF8;

//添加頭信息,為"文件下載/另存為"對話框指定默認文件名

         Response.AddHeader("Content-Disposition", "p_w_upload;filename=" + Server.UrlEncode(filename));

//添加頭信息,指定文件大小,讓瀏覽器能夠顯示下載進度

        Response.AddHeader("Content-Length",file.Length.ToString());

        Response.ContentType =  "application/octet-stream";

//把文件流發(fā)送到客戶端

        Response.WriteFile(file.FullName);

//停止頁面的執(zhí)行

        Response.End();

    }

}

    三、下載附件

    通過downatt.aspx下載附件:

    訪問downatt.aspx?file=附件路徑(如:uploadfile/a.doc)就可以下載了。

    四、進一步設(shè)置

    網(wǎng)站web.config中配置登錄控制,

<authenticationmode="Forms">

  <forms loginUrl="~/ Login.aspx"name=".ASPXAUTH" defaultUrl=" Default.aspx"timeout="30"path="/" /> //Login.aspx 為登錄模塊

 </authentication>

    <authorization>

      <deny users="?" />  //禁止匿名用戶訪問

    </authorization>

    只要訪問網(wǎng)站上的aspx等程序就必須登錄,通過以上這些處理就有效地防止了指定的附件被非法下載。 

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享名稱:.NET防止地址欄直接下載,保護網(wǎng)站上文檔、附件的方法-創(chuàng)新互聯(lián)
文章出自:http://muchs.cn/article20/dpejjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、做網(wǎng)站、自適應(yīng)網(wǎng)站面包屑導航、用戶體驗、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化