2010-01-15 77 views
0

我有一個Silverlight 3控件,它向http:// somedomain /發出跨域HTTP請求。我正在使用瀏覽器HTTP堆棧來發出此請求。 somedomain上適當的clientaccesspolicy.xml已經到位。Silverlight在跨域瀏覽器請求中不發送cookie

我的瀏覽器有一組Cookie的somedomain的,我想這些的時候說:HTTP請求時所用。

當我的Silverlight控件從HTTP下載://本地主機/,但是,沒有我的餅乾似乎(我使用招跟蹤的HTTP流量)傳輸!

當我將xap上傳到http:// somedomain/though並從那裏加載(以便HTTP請求不是跨域的)時,我看到我的瀏覽器/ IE的所有Cookie都傳輸了,一切安好。

這是預期的行爲?我檢查了MSDN,它說瀏覽器cookies總是被傳輸,無論請求是否是跨域的。

在此先感謝!

+0

「somedomain」真的是「somedomain」形式還是形式爲「somedomain.com」? – AnthonyWJones 2010-01-15 16:36:04

回答

0

實際使用瀏覽器HTTP堆棧時,Silverlight不具有控制權的餅乾是如何處理的很大。這留下了用戶在瀏覽器中配置的設置。

這可能是值得您編輯HOSTS文件,並把您的映射IP地址到名稱,比如「myhost.mydomain.com」(是的,你可以隨便挑,你什麼都喜歡)。現在使用此主機名訪問您的本地站點。

在IE本地主機被放置在不同的區段到更廣泛的互聯網的,並且可能會絆倒一些奇怪侷限性當從一個區域到交叉anotheer。如上所述使用FQDN應將您的網站放置在Internet區域中。這至少會消除區域問題,成爲此問題的根源。

另一個測試是使用Firefox代替。

+0

謝謝,看來不同的區域確實是這個原因。使用虛擬FQDN,一切正常。 – 2010-01-15 16:53:23

1

花費了幾個小時,但發現了類似的問題。原來該網站不在受信任的站點中。這似乎阻止了Silverlight SharePoint ClientContext用來發送所需cookie的Browser WebRequest(在我的情況中爲FedAuth)。

相關問題