现在我有一个从mvc网站获取数据的silverlight应用程序。只要我使用WebClient和GET请求,一切似乎都没问题。但是,当我使用HttpWebRequest和POST时,我遇到了身份验证问题。
问题源于缺少.ASPXAUTH cookie的请求。
有谁知道如何解决或解决这个问题?
答案 0 :(得分:6)
在制作HttpWebRequest
对象之前编写以下代码。
System.Net.WebRequest.RegisterPrefix(“http://”,WebRequestCreator.BrowserHttp); System.Net.WebRequest.RegisterPrefix(“https://”,WebRequestCreator.BrowserHttp);
然后创建HttpWebRequest对象。
//创建请求
HttpWebRequest request = HttpWebRequest.CreateHttp(“http://zainshaikh.posterous.com/”);
希望这有帮助。
答案 1 :(得分:1)
我最近也有点喜欢这个。您正在分离基于浏览器的通信和基于Silverlight的通信。当您使用WebClient时,您实际上是通过浏览器的HTTP堆栈发出请求,因此获得所有自动cookie处理。当您使用HttpWebRequest时,您正在使用Silverlight的HTTP堆栈,因此无法使用发送到浏览器的cookie;两个饼干商店是分开的。有关详细信息,请参阅this article。
我正在写出@ Zain的答案,它将HttpWebRequest注册到浏览器的HTTP堆栈并解决问题,但他打败了我; - 。)。