- AuthenticationService (标准MS,通过HTTPS)
- AppService (HTTP)
浏览器中的Silverlight自动将cookie附加到对域的所有调用中。我期望手机也是这样做的。
它没有。
无法访问头,因此手动操作不行。我想知道是否因为MS的某个聪明人认为手机应该强制执行cookie仅重新附加到同一域上的HTTPS端点或其他原因...
救命啊!!
由于手机不支持另一个主要帮助设置;忽略自签名证书,因此这是一个噩梦。
谢谢,
卢克
**更新**
虽然我正在使用CookieContainer方法进行跟进,但必须指出,即使在Silverlight中Headers集合中缺少Add方法,仍可以使用索引器添加标头。
请查看http://cisforcoder.wordpress.com/2010/12/01/how-to-implement-basic-http-authentication-in-wcf-on-windows-phone-7/了解如何在Windows Phone 7上实现基本的HTTP身份验证。
** 更新2 **
可以按照Lex的答案设置CookieContainer。我现在被卡住了,继续调查WCF客户端中引用.cs EndInvoke时抛出的ArgumentNullException。我的服务器没有接收到调用的任何迹象。
堆栈上的两个关键调用是:
System.Net.Browser.HttpWebRequestHelper.ParseHeaders
并且
MS.Internal.InternalWebRequest.OnDownloadFailed
最终更新
当针对一个自签名证书的服务器调用时,似乎会抛出ArgumentNullException异常。
然而,模拟器/SDK存在一些奇怪的问题。我在所有服务器上都遇到了这个异常,即使是那些没有SSL的服务器,以及一个已经发行证书的服务器。
我也遇到了一些只有通过本地重新启动才能解决的问题。因此,我认为我的问题是由于SDK中的其他问题导致我认为代码有问题,但实际上是正确的。
不确定该给出什么建议,除了要对源自WP7 WCF堆栈的异常持怀疑态度,特别是EndpointNotFoundException和ArgumentNullException,并拥有一个完整的框架测试客户端应用程序作为健全性检查。
Luke