Silverlight 3 中的新客户端网络堆栈可以直接连接到 Azure 存储或网格吗?

Posted

技术标签:

【中文标题】Silverlight 3 中的新客户端网络堆栈可以直接连接到 Azure 存储或网格吗?【英文标题】:Can the new client networking stack in Silverlight 3 directly connect to Azure Storage or Mesh? 【发布时间】:2010-11-09 19:37:36 【问题描述】:

From Tim Heuer:

在 Silverlight 3 中,我们引入了客户端 HTTP 堆栈作为选项 也是。您必须选择加入以使用客户端 HTTP 处理。这给 您不仅可以使用 GET/POST(即更多 REST-ful 动词),使用响应状态代码/标题等。您可以选择加入 对所有请求使用客户端 HTTP 堆栈,针对特定的请求 域,或基于每个请求,如下所示:

HttpWebRequest request = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(new Uri(
            http://api.search.live.net/qson.aspx?query=Silverlight));

我的理解是,Silverlight 无法直接访问 Azure 存储的原因是它无法使用身份验证数据对 HTTP 标头进行签名。这会弥合差距并允许直接访问 Azure 存储或网格吗?如果有,是如何实现的?

【问题讨论】:

【参考方案1】:

我不确定,但您不想这样做,因为您的密钥会在客户端上。任何加载您的 Silverlight 代码的人都可以破解二进制文件并找到您的密钥,然后像您一样操作数据。

解决此问题的一种方法是通过您控制的服务器代理您的请求。

在你问之前,我们已经知道这个问题,但现在没有任何要宣布的事情。

【讨论】:

感谢您指出这一点 - 这个 Silverlight 应用程序更像是一个“查看器”,让用户看到自己的存储空间。我肯定不会嵌入我的密钥。通过我的服务器代理请求意味着我必须为带宽付费,所以如果可能的话,我想避免这种情况。 如果查看者只查看自己的存储空间,为什么不将其公开?有没有敏感内容? 我可以公开什么?我不熟悉 azure 的“公共”选项。 容器。创建容器时,您可以选择将其设为公开或私有。公共意味着任何人都可以在没有身份验证的情况下读取数据(但不能修改)。私有意味着读取+修改需要身份验证。如果您的 SL 查看器只进行读取,您可以将容器公开。【参考方案2】:

我查过了,恐怕你不能在 Silverlight 3 中执行此操作。抱歉 :-(。

【讨论】:

以上是关于Silverlight 3 中的新客户端网络堆栈可以直接连接到 Azure 存储或网格吗?的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 3 + Java 网络服务

带有 Prism 4 的新 LOB Silverlight 4(mvvm、mef、unity)

在 Silverlight 3 中请求客户端访问策略文件

Silverlight 中的 Lync 错误:客户端不受信任

单元测试中的新核心数据堆栈(PersistenceController)

第 3 方 Silverlight 网格控制