我目前正在构建一个处理大量图像的ASP.NET MVC 3-WebApp,最多可以说每页100个。 目前,WebApp本身为图像提供服务。原因是,我想确保只有经过授权和登录的用户才能下载图像。这种方法会受到性能的影响,因为一方面浏览器按顺序加载图像,另一方面,这种方法的扩展性不是很好。 因此,我想从另一台主机引入一个外部WCF-WebService,它提供图像,只提供图像。这非常有效,但目前我不知道如何使Download-Url安全。
在我的页面中,让我们说“www.imageviewer.com”我希望有很多像这样的图像标签: [Image-Tag] Source =“imageservice.imageviewer.com/Download/someID”[/ Image-Tag]
我知道我可以在下载URL中发送一些加密的安全信息,比如UserID或其他SecurityTokens,并对其进行一些处理。但这并不妨碍用户(或其他用户)可以在不登录的情况下在另一个浏览器中下载图像。
我想要一个基于会话的解决方案。登录到WebApp后,只有使用有效会话,浏览器才能从WebService下载图像。
任何想法如何解决这个问题?
答案 0 :(得分:1)
webservices是新的正则表达式吗?
有些人在遇到问题时会想“我知道,我会使用网络服务”。现在他们有两个问题。
请说明您认为网络服务会以何种方式加快图片加载速度?将会有更多的开销(XML(un)打包,添加另一层代码),并且由于web服务不是一个HTTP请求,而是一个浏览器在请求图像时所做的事情,你仍然会遇到浏览器的限制连接。
浏览器并不是真正按顺序加载图像,而是以about two to eight at a time的速率加载到同一个域。
Loading the images from different subdomains是一种更常见的方法,添加一些lazy loading会加快速度。然后,您仍然可以使用存储在会话,Cookie或标头中的信息来保护它。
另一方面,如果您只想回答您的问题并且没有友好的建议:您只需使用Custom User Name and Password Validator保护您的服务,您只需覆盖验证程序以验证您的已知用户凭据