【问题标题】:Hosting Silverlight widget from local file system从本地文件系统托管 Silverlight 小部件
【发布时间】:2010-01-09 07:33:19
【问题描述】:

我正在尝试在硬盘驱动器上本地存在的 html 文件中托管远程 Silverlight 小部件,但每当我打开 html 文件时,Silverlight 内容都不会显示。如果我将文件移动到 Web 服务器,然后通过 http 访问它,它就可以完美运行。我发现(或至少我假设)该小部件正在尝试回调 Web 服务器,但由于 SL 2+ 中的cross zone restrictions 而失败。我还看到一些用户报告说从本地文件调试时遇到了这个问题。我的问题是,我如何确定这是正在发生的问题/我可以使用哪些工具来验证我的假设?

此外,(完全清楚要考虑特权提升安全问题)有什么方法可以在这样的情况下声明小部件调用的 Web 服务是安全的(例如添加到受信任的站点) Silverlight 能够在没有安全异常的情况下执行调用的方式?

我正在谈论的小部件示例如下:

<object 
    type="application/x-silverlight-2" 
    data="data:application/x-silverlight-2," 
    width="400" height="400">
    <param name="minRuntimeVersion" value="3.0.40624.0" />
    <param name="background" value="#141414" />
    <param name="splashScreenSource"
      value="http://memorabilia.hardrock.com/Widget/3.2009.1014.0/Splash.xaml" />
    <param name="source"
      value="http://memorabilia.hardrock.com/Widget/3.2009.1014.0/HardRock.Memorabilia.Silverlight.Widget.xap" />
    <param name="enableHtmlAccess" value="true" />
    <param name="initParams" value="item=034739" />
    <a href="http://go.microsoft.com/fwlink/?linkid=149156&v=3.0.40624.0">
        <img src="http://memorabilia.hardrock.com/Widget/3.2009.1014.0/Ping.gif?type=install&item=034739" 
          style="background:#141414
           url(http://content.memorabilia.hardrock.com/Assets/Images/widget/034739.jpg)
           no-repeat center;margin:0;padding:0;border:0;" 
          width="400" height="400" />
    </a>
</object>

【问题讨论】:

  • 此 Silverlight 控件是否允许您在自己的本地文件中托管? IOW,它是你的还是你有权使用它?
  • 不作为答案提交,因为我不确定,但是您是否查看过“客户端访问策略”文件? silverlighttutorials.com/?p=148
  • Silverlight 控件不是我的控件。在上面的示例中,它由 memorabilia.hardrock.com 托管,并由他们作为包含嵌入代码的小部件提供。它们确实允许跨域调用(我在 hardrock.com/crossdomain.xml 找到了客户端访问策略文件,当我将测试 html 文件扔到 Web 服务器上时,内容按预期下载),但从文档看来,这更像是一个问题跨区域调用,我还没有看到一种方法来配置它是允许的。

标签: silverlight


【解决方案1】:

这是一个跨协议违规问题 - 具有 file:// 协议的页面无法访问具有 http:// 协议的资产。这也有助于保护您的计算机免受恶意 Silverlight 应用程序的访问。

【讨论】:

  • 不管是跨区还是跨协议,都无法访问SL控件或代码,你知道有什么方法可以验证错误吗?我没有看到浏览器抛出任何错误,当我使用 fiddler 时,我在流量中看不到任何看起来有用的东西。也许换一种说法,除了逻辑和访问策略限制的一般知识之外,还有什么方法可以诊断这个问题。此外,我理解为什么这有助于保护我的计算机。但是,如果我愿意,有什么方法可以让我单独选择降低我的计算机的安全性并使其正常工作?
猜你喜欢
  • 1970-01-01
  • 2017-06-08
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多