我有一个silverlight应用程序尝试通过以下方式访问另一个站点(托管在JBOSS或Tomcat上):
WebClient proxy;
//......
proxy.DownloadStringAsync(url); //this url point another site hosted by JBOSS or Tomcat with http. https not available for this site.
使用https访问Silverlight。当我运行silverlight应用程序并尝试访问另一个站点时,在弹出窗口中收到如下消息:
显示混合内容?
然后选择是/否,浏览器崩溃了。
如果我使用http来访问我的silverlight应用程序,那么一切都很好。
然后这个问题被认为是跨域问题。跨域xml文件可以放在JBOSS或Tomcat站点上。不确定策略文件是什么样的。此案例的任何示例策略xml文件?然后我可以把它放在JBoss或Tomcat网站上进行测试吗?
评论: 找到并将尝试。
答案 0 :(得分:0)
首先,您只需要Silverlight的clientaccesspolicy.xml(它有更多功能)。 crossdomain.xml是一种较旧的安全访问模型,兼容Flash等
其次,该文件必须位于https站点的根目录中,因为不与http站点相同。如果您的应用访问了http和https网站,则需要在两个网站上都有。
第三,如果您仍然遇到问题,请在配置中明确添加https。例如与
<allow-from>
<domain uri="http://*">
<domain uri="https://*">
</allow-from>)
Network Security Access Restrictions in Silverlight上的此页面提供了更多选项详情
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<!--Enables Silverlight 3+ all methods -->
<policy>
<allow-from http-methods="*">
<domain uri="http://*">
<domain uri="https://*">
</allow-from>
<grant-to>
<resource path="/api" include-subpaths="true"/>
</grant-to>
</policy>
<!--Enables Silverlight 2 clients to continue to work normally -->
<policy>
<allow-from >
<domain uri="http://*">
<domain uri="https://*">
</allow-from>
<grant-to>
<resource path="/api" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>