【发布时间】: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