用于发出Azure blob内容的ASPX Handler

时间:2013-03-10 20:31:27

标签: asp.net azure azure-storage-blobs

我生成HTML内容并存储在blob上,然后我需要在IFrame中显示。这个HTML是静态HTML,但现在我的页面使用了第三方生成的一些JavaScript(它只作用于页面本身)。使用IE,这个JavaScript在IFrame中被阻止(这在Chrome中不是问题) - 因此我需要找到一个解决方案,以便不阻止IFrame中的内容。

我考虑的一种方法是使用CustomHandler进行此操作。因此,我的处理程序可以处理以“/ blob”开头的请求,然后从blob下载内容(HTML页面或图像)并将其提供给服务器,以便浏览器看到它来自同一服务器。这是一个很好的方法吗?

如果是,那么ProcessRequest应该只下载(HTML或图像)并将其保存到context.Response.OutputStream(相应地设置ContentType)。从blob获取数据并提供数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

不要将iframe用于您自己的内容。如果你想要一个可滚动的区域,可以使用CSS:

.containerContentScroll {  overflow: auto;  height: 500px;  scrollbar-base-color: #963; }

此外,所有Azure blob内容都可以通过URL引用,您可以这样做:

<iframe src="http://myblob.blob.core.windows.net/.../image.png />

最后,如果您需要iFrame和跨域脚本,请参阅this SO post了解如何在MVC和此article on the XDomainRequest object中启用它。

更新 - 刚刚找到Cross Origin Resource Sharing (CORS) via Access-Control-Allow-Origin header is a planned feature for Azure Storage - VOTE here