2012-07-01 2 views
-2

Я пытаюсь проверить учетную запись Google с помощью WebClient.Подтвердить учетную запись Google с помощью WebClient

class PostDataBuilder 
{ 
    private static Dictionary<string, string> 
     ToPropertyDictionary(object data) 
    { 
     var values = data 
      .GetType() 
      .GetProperties() 
      .Select(x => new { 
           Key = x.Name, 
           Value = x.GetValue(data, null) 
          }); 

     var result = new Dictionary<string, string>(); 
     foreach (var item in values) 
      result.Add(item.Key, item.Value.ToString()); 

     return result; 
    } 

    public static string Build(object data) 
    { 
     string result = ""; 
     var dict = ToPropertyDictionary(data); 
     foreach (var name in dict.Keys) 
      result += name + "=" + HttpUtility.UrlEncode(dict[name]) + "&"; 
     return result.Substring(0, result.Length - 1); 
    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     string postText = PostDataBuilder.Build(
     new 
     { 
      dsh = "-1903339439726094408", 
      GALX = "-Ggrv6gqusk", 
      timeStmp = "", 
      secTok = "", 
      Email = "[email protected]", 
      Passwd = "WrongPassword", 
      signIn = "?????", 
      rmShown = "1" 
     }); 

     byte[] data = Encoding.UTF8.GetBytes(postText); 

     WebClient wc = new WebClient(); 
     byte[] result = wc.UploadData(
      new Uri("https://accounts.google.com/ServiceLoginAuth"), 
      "POST", data); 

     string resultText = Encoding.UTF8.GetString(result); 
    } 
} 

Переменная ResultText установлена, даже если данные верны. Что не так?

ответ

1

Вы не должны когда-либо закручиваться с помощью служб входа в систему, таких как Google, или пытаться подделать браузер. В конце концов, это можно считать попыткой взлома или чего-то еще, и, скорее всего, он сломается при следующем обновлении своей страницы (или даже просто потому, что ваш IP-адрес меняется).

Вместо этого используйте OpenID или OAuth, как описано here.

Смежные вопросы