Silverlight HttpWebRequest无法在Header中包含.ASPXAUTH Cookie

时间:2010-11-03 17:25:57

标签: silverlight cookies httpwebrequest

现在我有一个从mvc网站获取数据的silverlight应用程序。只要我使用WebClient和GET请求,一切似乎都没问题。但是,当我使用HttpWebRequest和POST时,我遇到了身份验证问题。

问题源于缺少.ASPXAUTH cookie的请求。

有谁知道如何解决或解决这个问题?

2 个答案:

答案 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堆栈并解决问题,但他打败了我; - 。)。