使用Silverlight的Google Analytics(分析)HTTPS跨域策略问题

时间:2016-01-15 07:17:42

标签: silverlight google-analytics cross-domain crossdomain.xml clientaccesspolicy.xml

我是从Silverlight应用向Google Analytics发送简单消息。它们看起来像这样(数据已更改):

http://www.google-analytics.com/collect?v=1&tid=foobar&cid=foobar&t=pageview&dp=foobar&dt=foobar

非常简单的API。如果我使用HTTP它可以很好地工作。

如果我使用HTTPS,我会违反Silverlight的跨域策略。根据{{​​3}},google-analytics.com需要通过托管clientaccesspolicy.xml(特定于Silverlight)或crossdomain.xml(FLASH使用的原始版本)来批准跨域调用。原来他们主持人the docs,我可以看到Silverlight下载它(通过Fiddler),但显然Silverlight不喜欢该文件的内容并且没有#&# 39; t允许对该域的HTTPS调用(System.Security.SecurityException)。

所以..至少在目前,我无法使用HTTPS从Silverlight使用Google Analytics。有谁知道解决这个问题?

注意,我不能只使用HTTP,因为这会导致IE发出"允许混合内容"提示导致我们的一些客户出现问题。我需要像我们的其他应用程序一样使用HTTPS。

编辑:好的,我采用了一种完全不同的方法,使用HtmlPage.Window.Invoke调用3行Javascript函数来执行异步发送,而不是在Silverlight代码中使用WebClient。像冠军一样工作。有人看到任何潜在的问题吗?

1 个答案:

答案 0 :(得分:0)

我怀疑可能有办法让这项工作成功,因为我知道google-analytics.com非常适合跨域友好。

如果你绝对无法让它工作,另一种选择就是代理命中。如果您这样做,则需要确保使用您发送的匹配中的uauip覆盖字段,以便它们显示在Google Analytics中,并显示IP地址和用户代理原始访问者而不是您的服务器。

以下是有关使用带有Measurement Protocol的代理服务器的更多信息: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#using-a-proxy-server