Silverlight未在跨域浏览器请求中发送Cookie

Silverlight未在跨域浏览器请求中发送Cookie,silverlight,cookies,cross-domain,Silverlight,Cookies,Cross Domain,我有一个Silverlight 3控件,它向HTTP://somedomain/发出跨域HTTP请求。我正在使用浏览器HTTP堆栈发出此请求。在某个域上有一个合适的clientaccesspolicy.xml 我的浏览器有一组somedomain的cookie,我希望在发出HTTP请求时使用这些cookie 然而,当我的Silverlight控件从http://localhost/加载时,我的cookie似乎都没有被传输(我正在使用Fiddler跟踪http流量) 当我将xap上传到http:/

我有一个Silverlight 3控件,它向HTTP://somedomain/发出跨域HTTP请求。我正在使用浏览器HTTP堆栈发出此请求。在某个域上有一个合适的clientaccesspolicy.xml

我的浏览器有一组somedomain的cookie,我希望在发出HTTP请求时使用这些cookie

然而,当我的Silverlight控件从http://localhost/加载时,我的cookie似乎都没有被传输(我正在使用Fiddler跟踪http流量)

当我将xap上传到http://somedomain/through并从那里加载它(这样http请求就不会跨域)时,我看到所有针对somedomain的浏览器/IE cookie都被传输了,一切正常

这是故意的行为吗?我查过MSDN,它说无论请求是否跨域,浏览器cookie总是会被传输的


提前谢谢

实际上,当使用浏览器HTTP堆栈时,Silverlight无法控制cookies的处理方式。它保留用户在浏览器中配置的设置

您可能需要编辑主机文件并将IP地址映射到“myhost.mydomain.com”这样的名称(是的,您可以随意选择)。现在使用此主机名访问您的本地站点

在IE下,localhost被放置在与更广泛的internet不同的区域,当您从一个区域跨越到另一个区域时,您可能会被一些wierd限制绊倒。如上所述使用FQDN应将您的站点置于internet区域中。这将至少消除区域问题作为此问题的根源


另一个测试是改用Firefox。

花了几个小时处理类似的问题。结果表明该站点不在受信任的站点中。这似乎阻止了Silverlight SharePoint ClientContext用于发送所需Cookie的浏览器WebRequest(在我的例子中是FedAuth)

“somedomain”真的是“somedomain”的形式还是“somedomain.com”的形式?谢谢,看起来不同的区域确实是原因。使用虚拟FQDN,一切正常。