2013-01-04 42 views
2

我正在尋找一個解決方案,限制.pdf文件被用戶下載,但可以通過aspx或asp進行檢索,我試圖添加以下行到web.config文件的System.Web標籤內的網站根目錄:限制用戶可下載的PDF文件,但可以由aspx或asp執行

<httpHandlers> 
    <add verb="*" path="*.pdf" type="System.Web.HttpForbiddenHandler" /> 
</httpHandlers> 

但是,當我訪問該網站時的內部服務器錯誤。有誰知道如何做到這一點,我在IIS 7在Windows 7

更新
我已經successfuly配置測試它:

<add name="NoPdfAllowed" verb="*" path="download/*.pdf" 
    type="System.Web.HttpForbiddenHandler" /> 
</handlers> 

但我有一個Java小程序插件(一個html/asp/aspx頁面),在web.config文件中添加上面的行後,無法打開pdf。使Java小程序能夠加載PDF是否可行?

+0

你有權訪問IIS設置嗎? –

+0

@Joel Etherton是的 – hkguile

+0

我目前沒有時間發佈正確的答案,但是如果您研究IIS 7的通配符映射,則可以強制任何文件類型使用.Net身份驗證進行驗證,然後您可以使用角色web.config中的安全性以保持一切順利。 –

回答

1

把pdf文件放到webdirectory外面怎麼樣?

建立一個名爲C:\ pdf-files \的目錄,並在這個目錄中給予互聯網用戶閱讀權限。這樣,你的asp和aspx文件可以使用這些文件來滿足你需要,但訪問該站點的用戶不能訪問它們?如果我理解你的問題,你要禁止的PDF文件下載中心

不過,若你使用像adostream或類似功能的用戶可能仍然能夠下載流媒體內容...

0

藥谷「直接」 url,但允許它們通過客戶端下載(java applet)。這是怎麼樣的,使圓角圓:)

我使用的是我的愛好放棄的網站這個系統下載zip文件:

  • 看跌的pdf出網站的目錄或禁止其擴展爲你已經做了
  • 當用java applet服務.aspx頁面時,生成將包含唯一標識符和pdf文件名稱的唯一標記(讓我們說新的guid),將它存儲在http緩存中(如果你使用單個盒子作爲服務器)或在數據庫/擴展(Web場)中,將此令牌標識符傳遞給小程序,此令牌應該只有有限的使用期限
  • 創建HttpHandler將提供PDF文件,這個處理程序將(在提供pdf之前)通過令牌ID檢查,如果令牌存在並且仍然有效,並且在提供pdf文件後將使該令牌無效
  • 您也可以檢查推薦人是否它匹配您的域名,但我不會建議,有些瀏覽器不設置一個正確

這樣,用戶仍然可以下載PDF文件,但下載鏈接將工作只有一次,所以他們無法鏈接你的內容(至少不那麼容易)。

相關問題