2010-07-22 284 views
0

我需要能够登录到我的Gmail帐户,然后我得到的cookies和将有权访问其他谷歌服务。但我无法登录到我的Gmail(或任何goolgle)帐户。我在这个网站上发现了一些帖子怎么做,但没有一个适合我。我这样做:登录到Gmail帐户

 string formUrl = "https://www.google.com/accounts/ServiceLoginAuth"; 
     string formParams = string.Format("Email={0}&Passwd={1}&signIn={2}&PersistentCookie={3}&GALX={4}", 
      "autokuzov.top", "1QAZ2wsx", "Sign in", "yes", "CfFosrEhu-0"); 

     string cookieHeader; 
     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(formUrl); 
     req.ContentType = "application/x-www-form-urlencoded"; 
     req.Referer = "https://www.google.com/accounts/ServiceLoginAuth"; 
     req.Method = "POST"; 

     req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7"; 
     req.AllowAutoRedirect = false; 

     req.CookieContainer = new CookieContainer(); 
     req.Headers.Add(HttpRequestHeader.CacheControl, "no-cache=set-cookie"); 

     byte[] bytes = Encoding.ASCII.GetBytes(formParams); 
     req.ContentLength = bytes.Length; 
     using (Stream os = req.GetRequestStream()) 
     { 
      os.Write(bytes, 0, bytes.Length); 
     } 
     WebResponse resp = req.GetResponse(); 

     using (StreamReader sr = new StreamReader(resp.GetResponseStream())) 
     { 
      string s = sr.ReadToEnd(); 
     } 

响应返回:“您的浏览器的cookie功能已关闭,请将其打开。” 我也试过让req.Headers.Add(HttpRequestHeader.CacheControl,“no-cache = set-cookie”);但它也是不安全的。

有人知道问题在哪里吗?

回答

0

“您的浏览器的cookie功能 已关闭,请打开它。”

您可能需要在浏览器中启用第三方Cookie。这些在某些浏览器中默认关闭。如果禁用第三方Cookie,则在使用Gmail管理器插件时,您会在Firefox中看到相同的警告。

+0

如何在C#中启用第三方Cookie时向我的Google帐户发送请求。 – Dzmitry 2010-07-23 07:55:19

+0

如果你是从浏览器中的Web服务器上运行它,你当然不能这样做。只有用户可以出于安全原因手动执行此操作。如果您将此作为外部应用程序运行,则可能是。 – MrWhite 2010-07-23 09:40:45

相关问题