2010-12-06 33 views
0

构建MVC 2.0网站并在我的Site.Master中使用内容交付网络(CDN)。我使用以下CDN:在ASP.NET MVC中启用SSL的内容交付网络

  • 雅虎的复位字体,grids.css
  • 的jQuery 1.4.2
  • jQuery验证

所有这些CDN的使用HTTP交付: //

我的网站目前支持SSL和非SSL页面。 当导航到启用SSL的网页,我得到一个错误,因为CDN链接到HTTP://

虽然我知道,你可以使用CDN的SSL版本,但我的问题是更喜欢:

由于我有非SSL和SSL页面共享相同 * Site.Master *我该怎么办? 我是否应该只为SSL和非SSL页面获得启用SSL的版本? 或者我应该做一些“if ... else”?

任何优点或缺点的任何这些方法?

感谢

回答

-1

if ... else看上去最可行的解决方案,虽然你可能要总是使用SSL,忘记一切。

有关混合安全内容页面的警告是合理的,因为脚本可能会在不安全的连接上被利用。使用黑客脚本来思考银行网站,将脚本历史记录的HTML标记转发给恶意用户。

对于使用if - else语句来检查哪个协议字符串要加入外部资源的URL,甚至不是性能(检查在微秒内完成...),没有关于性能,a由于浏览器必须建立安全连接(SSL/TLS握手)并执行大量不必要的加密操作,因此总是在不需要时使用SSL的缺点。

我会去的if - else,并且由于您使用母版页,您的代码中的位置更少以修改!

+0

谢谢djechelon!也许我会用If ... else方法得到! 我很好奇...如果不是使用SSL或非SSL CDN,而是简单地将文件添加到我的项目中的文件夹中并链接到这些文件...虽然它会击败CDN的目的,但它会解决我的问题呢? – Vlince 2010-12-06 21:11:08

+0

你自己说过...它会击败CDN的目的,但是,是的,它会修正,因为相对URL被正确地映射到SSL /非SSL – 2010-12-06 21:15:26

6

对不起,这里是真正的答案乡亲。请继续阅读以指导自己。

忘记了你在过去为了协议检查而做过的垃圾。

对于支持SSL的CDN,如Amazon Cloudfront或Microsoft CDN,请完全省略协议。是的,我说过。完全忽略该协议,如果其他测试停止执行。我为我所有的电子商务网站都这样做。很多人不知道的漂亮的小事实是省略了协议,强制URL使用网站URL使用的任何协议,所以如果你使用SSL,bam,使用SSL等,这实际上是一个Web标准,所有浏览器实现这一点。

例如,我所有的CDN图像资源和静态文件等所使用的网址,像这样:

<img src="//d34ic8my8k87as.cloudfront.net/img/web/success-icon.png" /> 

如果你读了互联网上的RFC和规格,你会发现一些东西,你的鼻子底下藏了起来。你可以看到我的个人资料为一些网站做这个活。希望有所帮助。

相关问题