我目前正在构建一个处理大量图像的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