我目前正在構建一個處理大量圖像的ASP.NET MVC 3-WebApp,可以說每頁最多100個。 目前WebApp本身爲圖像提供服務。原因是,我想確保只有經過授權和登錄的用戶才能下載圖像。這種方法受到性能的影響,因爲一方面瀏覽器按順序加載圖像,另一方面這個縮放比例不是很好。 因此,我想介紹一個來自另一臺主機的外部WCF-WebService,它服務於圖像並且僅提供圖像。這工作得很好,但目前我不知道如何使下載網址安全。通過WebService安全圖像下載的最佳實踐
在我的網頁可以說「www.imageviewer.com」我想有很多像這樣的圖像標籤: [Image-Tag] Source =「imageservice.imageviewer.com/Download/someID」[/ Image - 標籤]
我知道我可以發送一些加密的安全信息,在用戶名或其他SecurityTokens下載Url,並做一些處理。但這並不妨礙用戶(或其他用戶)可以在另一個瀏覽器中下載圖像,而無需登錄。
我想要一個基於會話的解決方案。在登錄到WebApp後,只有使用有效的會話,瀏覽器才能從WebService下載圖像。
任何想法如何解決這個問題?
我測試過從其他資源下載圖像(不管它是否是web服務或曾經)會給用戶帶來更快的用戶體驗。原因是,我認爲,在瀏覽器完成當前頁面的下載+渲染+ JS處理之前,瀏覽器開始從不同的資源下載圖像。也許我完全錯了。 – 2012-02-15 09:18:46
如果我懶加載來自不同子域的圖像,如何共享會話信息?我想到的唯一想法是使用Out-Of-Process或SqlServer會話。但我想避免這樣做。 – 2012-02-15 09:24:30
@StevenGrigoleit你的第一條評論指出「不同的資源」,當它是另一個(子)域時,它會加載得更快,因爲瀏覽器處理連接的方式,其中我在我的答案中加入了一個鏈接。此外,您可以從IIS中的同一網站提供子域名,以便他們共享所有數據,例如會話和配置(即連接字符串和whatnot)。 – CodeCaster 2012-02-15 12:18:16