C# 在ImageControl上显示Azure blob加密图片

C# 在ImageControl上显示Azure blob加密图片,c#,azure,encryption,azure-storage-blobs,C#,Azure,Encryption,Azure Storage Blobs,这是我关于Stackoverflow的第一个问题 我面临的是架构问题,而不是编程问题 我将解释这个主题: 我正在使用Microsoft Azure云服务解决方案 我有一个WorkerRole,它对上传的图片进行加密并将它们存储在Blob中 然后我有一个WebRole,我想用它在浏览器中、图像控制器中显示这张图片 我设法把一张加密的图片从一个blob存储到本地存储器,并对其进行解密 在这一点上,我查看了如何显示存储在WebRole LocalStorage中的图片。答案解释说,使用本地存储为图片提

这是我关于Stackoverflow的第一个问题

我面临的是架构问题,而不是编程问题

我将解释这个主题: 我正在使用Microsoft Azure云服务解决方案

我有一个WorkerRole,它对上传的图片进行加密并将它们存储在Blob中

然后我有一个WebRole,我想用它在浏览器中、图像控制器中显示这张图片

我设法把一张加密的图片从一个blob存储到本地存储器,并对其进行解密

在这一点上,我查看了如何显示存储在WebRole LocalStorage中的图片。答案解释说,使用本地存储为图片提供服务是一个坏主意,因为每个请求都可能命中我的webRole的不同实例

所以,我被困在这里,我如何才能将我解密的图片提供给我的图像控制器,而不在blob中有我图片的未加密副本

解决方案 定义一个web处理程序,该处理程序将图片从blob下载到webrole,然后对其解密并返回

public class Images : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
        {
            String imgPath;
            String imgName = context.Request.QueryString["imgName"];
            imgPath = getFromStorage(imgName);
            context.Response.ContentType = "image/png";
            context.Response.WriteFile(imgPath);
        }
}
在图像web控件中:

<asp:Image ID="imgViewer" ImageUrl="Images.ashx?imgName=mypicture.png"/>

我不知道为什么要加密文件,但如果必须这样做,那么这个答案可能会有所帮助:

我个人将私人文档存储在私人容器中。然后,您可以在指定的时间段内使用SAS授予对文档的访问权限

以下是一个具有相同概念的链接:

我在实际文档的生产环境中有这样一种形式

希望这有帮助!
~Cheers

每个请求确实可以命中web角色的不同实例,但在这种情况下,您似乎在同一个请求中下载和解密。您可以在处理请求后从本地存储中删除映像。下一个请求将命中另一个实例,该实例将类似地下载、解密、服务和删除。

thx,但我已经知道SaS的内容。我的图片必须在存储器上加密。公平地说,你可以在控制器中处理加密,然后返回图像。第一个链接应该允许您这样做。Sur,但我不使用MVC,我指的是“图像控制器”。无论如何,谢谢你的回复,但我找到了解决办法。我将用答案编辑我的问题