2013-02-24 75 views
1

我有網站在asp.net上用戶可以登錄和上傳圖像/文件/ PDF等我保持文件/圖像在服務器上,所以圖像上傳時間保持低。保護靜態圖像/文件與出文件處理程序

www.MyWeb.com/UserFolder/Img.jpg

我擔心的是,當以往任何用戶簽到並查看任何圖像時,圖像瀏覽器緩存中保留。所以即使用戶註銷,任何人都可以訪問圖像靜止。擊中 www.MyWeb.com/UserFolder/Img.jpg

我該如何保護圖像?有幾個帖子建議寫一個文件處理程序,但是我想保留圖像在服務器上,並且不想在點擊圖像時發送請求。

如何保護緩存在瀏覽器中的靜態內容?

任何幫助表示讚賞...

回答

1

如果您使用的是IIS只是確保與形式(或窗口)的文件夾,身份驗證和IIS告訴它只能只要用戶進行身份驗證服務的文件。 http://technet.microsoft.com/en-us/library/cc771077(v=ws.10).aspx

建議可能不是一個文件處理程序,而是一個HTTP處理程序,但這對於您當前的需求來說有些複雜。

對於緩存,您始終可以選擇在服務器的Web響應標頭中設置緩存。 http://msdn.microsoft.com/en-us/library/06bh14hk(v=vs.100).aspx

編輯:

OK,你escenario你我猜你不使用asp.net引擎意見解釋說,你剛剛發表在IIS中的圖片文件夾作爲Web應用程序。這就是爲什麼你對渲染沒有任何控制。 你需要做的是創建一個處理圖片的網頁,然後發送圖片的參數,例如:picture.aspx?id = picture1,例如在加載頁面中檢查用戶是否被允許看到那張圖片(你已經知道這個帳戶是因爲他已經登錄了),所以如果允許你使用這個用戶,你只需要創建一個Response.write來提供圖片,否則你可以說:Response.Write('你現在可以看到這個' )。這個想法是,你需要一箇中間人,這就是爲什麼你使用asp.net。

讓我知道,如果有幫助,

+0

感謝快速回復,即使用戶進行身份驗證,他將能夠擊出了一些其他用戶的www.MyWeb.com/UserFolder/Img.jpg。 如何將特定圖像與特定用戶關聯?所以誰曾經擊中www.MyWeb.com/UserFolder/Img.jpg看不到它。但是,如果一個非常particulare用戶登錄並擊中www.MyWeb.com/UserFolder/Img.jpg。他應該能夠做到這一點... – Imran 2013-02-24 09:02:18

+0

我更新了回覆,讓我知道它是否可以幫助你 – 2013-02-24 09:11:24

+0

你是對的,圖片在文件夾中,我只是發佈整個網絡,包括文件夾。當您點擊圖像時,我有你的想法來驗證用戶,並且The Picture.aspx會對用戶進行驗證。但是我擔心,如果某位用戶只是打開瀏覽器標籤,並寫入www.MyWeb.com/Images/UserFolder/Img.jpg並點擊它。他沒有經過picture.aspx?id = 1,但他正在以獨立用戶請求的方式進行。是可以處理這種情況?何時用戶不點擊圖像,只是簡單地寫URL訪問靜態圖像? – Imran 2013-02-24 09:34:19

相關問題