private void ConnectionCheckCompleted(bool IsSuccess, WebProxy proxy, OAuthKey key) { AuthPanel.ProxySetting.Opacity = 1.0; ProgressPanel.Visibility = Visibility.Collapsed; if (IsSuccess) { AuthPanel.Proxy = proxy; AuthPanel.OAuthKey = key; AuthPanel.ProxySetting.Visibility = Visibility.Collapsed; AuthPanel.OAuthSetting.Visibility = Visibility.Visible; AuthPanel.PanelStatus++; this.AuthPanel.AuthorizeLink.MouseDown += new MouseButtonEventHandler(AuthorizeLink_MouseDown); //this.AuthPanel.AuthorizeLink.MouseLeftButtonDown += new MouseButtonEventHandler(AuthorizeLink_MouseDown); } else { MessageBox.Show("Connection Failed."); } }
private OAuthKey GetOAuthKey() { OAuthKey key = new OAuthKey(); if (!File.Exists(SETTING_FILE_NAME)) { return null; } try { XmlDocument xdoc = new XmlDocument(); xdoc.Load(SETTING_FILE_NAME); key.TokenKey = xdoc.SelectSingleNode("/settings/oauth/tokenkey").InnerText; key.TokenSecret = DecryptString(xdoc.SelectSingleNode("/settings/oauth/tokensecret").InnerText, "yammyy"); } catch (Exception) { return null; } key.ConsumerKey = CONSUMER_KEY; key.ConsumerSecret = CONSUMER_SECRET; return key; }
private void ConnectionCheck(WebProxy proxy) { bool bIsSuccess = true; OAuthKey key = null; Auth auth = new Auth(); string query = auth.GetRequestTokenQuery(CONSUMER_KEY, CONSUMER_SECRET); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(query); req.Method = "POST"; req.PreAuthenticate = true; //req.Accept = "text/xml, application/xml"; req.Proxy = proxy; try { WebResponse res = req.GetResponse(); StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8); string data = reader.ReadToEnd(); reader.Close(); res.Close(); string szTokeyKey = string.Empty; string szTokenSecret = string.Empty; #region url parse string[] queryset = data.Split('&'); szTokeyKey = queryset[0].Split('=')[1]; szTokenSecret = queryset[1].Split('=')[1]; #endregion key = new OAuthKey(); key.ConsumerKey = CONSUMER_KEY; key.ConsumerSecret = CONSUMER_SECRET; key.TokenKey = szTokeyKey; key.TokenSecret = szTokenSecret; bIsSuccess = true; } catch (Exception) { bIsSuccess = false; } this.Dispatcher.Invoke(DispatcherPriority.Normal, new ConnectionCheckCompletedDelegate(ConnectionCheckCompleted), bIsSuccess,proxy, key); }
private User GetCurrentUser(OAuthKey auth, WebProxy proxy) { #region OAuth OAuthBase oAuth = new OAuthBase(); string nonce = oAuth.GenerateNonce(); string timeStamp = oAuth.GenerateTimeStamp(); string nurl, nrp; string query = Resources.USERS_CURRENT + "?"; Uri uri = new Uri(query); string sig = oAuth.GenerateSignature( uri, auth.ConsumerKey, auth.ConsumerSecret, auth.TokenKey, auth.TokenSecret, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.PLAINTEXT, out nurl, out nrp); // sig = HttpUtility.UrlEncode(sig); StringBuilder sb = new StringBuilder(uri.ToString()); sb.AppendFormat("oauth_consumer_key={0}&", auth.ConsumerKey); sb.AppendFormat("oauth_token={0}&", auth.TokenKey); // sb.AppendFormat("oauth_signature_method={0}&", "HMAC-SHA1"); sb.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); sb.AppendFormat("oauth_timestamp={0}&", timeStamp); sb.AppendFormat("oauth_nonce={0}&", nonce); sb.AppendFormat("oauth_version={0}&", "1.0"); sb.AppendFormat("oauth_signature={0}", sig); query = sb.ToString(); #endregion HttpWebRequest req = (HttpWebRequest)WebRequest.Create(query); req.Method = "GET"; req.PreAuthenticate = true; req.Accept = "text/xml, application/xml"; req.Proxy = proxy; WebResponse res = req.GetResponse(); StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8); string data = reader.ReadToEnd(); reader.Close(); res.Close(); #region XmlDocument User u = new User(); XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(data); u.JobTitle = xdoc.SelectSingleNode("/response/job-title").InnerText; u.FullName = xdoc.SelectSingleNode("/response/full-name").InnerText; u.MugshotUrl = new Uri(xdoc.SelectSingleNode("/response/mugshot-url").InnerText); u.Name = xdoc.SelectSingleNode("/response/name").InnerText; u.Url = new Uri(xdoc.SelectSingleNode("/response/url").InnerText); u.WebUrl = new Uri(xdoc.SelectSingleNode("/response/web-url").InnerText); u.Id = int.Parse(xdoc.SelectSingleNode("/response/id").InnerText); #region extend UserExtention ux = new UserExtention(); ux.NetworkName = xdoc.SelectSingleNode("/response/network-name").InnerText; ux.NetworkId = int.Parse(xdoc.SelectSingleNode("/response/network-id").InnerText); ux.BirthDate = xdoc.SelectSingleNode("/response/birth-date").InnerText; // ux.HireDate = DateTime.ParseExact(xdoc.SelectSingleNode("/response/hire-date").InnerText, "yyyy-MM-dd", null); Status s = new Status(); s.Followers = int.Parse(xdoc.SelectSingleNode("/response/stats/followers").InnerText); s.Following = int.Parse(xdoc.SelectSingleNode("/response/stats/following").InnerText); s.Updates = int.Parse(xdoc.SelectSingleNode("/response/stats/updates").InnerText); ux.Status = s; Location l = new Location(); //l.Id = int.Parse(xdoc.SelectSingleNode("/response/location/id").InnerText); //l.UserId = int.Parse(xdoc.SelectSingleNode("/response/location/user-id").InnerText); //l.Name = xdoc.SelectSingleNode("/response/location/name").InnerText; //l.Value = xdoc.SelectSingleNode("/response/location/value").InnerText; //l.CreatedAt = DateTime.ParseExact( // xdoc.SelectSingleNode("/response/location/created-at").InnerText, // "yyyy-MM-ddTHH:mm:ssZ", null); //l.UpdatedAt = DateTime.ParseExact( // xdoc.SelectSingleNode("/response/location/updated-at").InnerText, // "yyyy-MM-ddTHH:mm:ssZ", null); ux.Location = l; Contact c = new Contact(); List<EmailAddress> emails = new List<EmailAddress>(); foreach (XmlNode aNode in xdoc.SelectNodes("/response/contact/email-address")) { EmailAddress email = new EmailAddress(); email.Type = aNode.SelectSingleNode("type").InnerText; email.Address = aNode.SelectSingleNode("address").InnerText; emails.Add(email); } c.EmailAddresses = emails; List<PhoneNumber> phones = new List<PhoneNumber>(); foreach (XmlNode pNode in xdoc.SelectNodes("/response/contact/phone-number")) { PhoneNumber phone = new PhoneNumber(); phone.Type = pNode.SelectSingleNode("type").InnerText; phone.Number = pNode.SelectSingleNode("number").InnerText; phones.Add(phone); } c.PhoneNumbers = phones; Im im = new Im(); im.UserName = xdoc.SelectSingleNode("/response/contact/im/username").InnerText; im.Provider = xdoc.SelectSingleNode("/response/contact/im/provider").InnerText; c.Im = im; ux.Contact = c; u.Extention = ux; #endregion #endregion #region case LINQ //var xml = XElement.Parse(Encoding.UTF8.GetString(data)); //var result = from response in xml.Root.Elements() // select new User // { // Id = int.Parse(response.Element("id").Value), // NetworkName = response.Element("network-name").Value, // Name = response.Element("name").Value, // FullName = response.Element("full-name").Value, // JobTitle = response.Element("job-title").Value, // NetworkId = int.Parse(response.Element("network-id").Value), // BirthDate = response.Element("birth-date").Value, // Url = new Uri(response.Element("url").Value), // MugshotUrl = new Uri(response.Element("mugshot-url").Value), // HireDate = DateTime.ParseExact(response.Element("hire-date").Value, "yyyy-MM-dd", null), // WebUrl = new Uri(response.Element("web-url").Value), // }; #endregion return u; }
public Session(OAuthKey oauth, WebProxy proxy) { this.CurrentUser = GetCurrentUser(oauth, proxy); this.Auth = oauth; this.Proxy = proxy; }
public Session(OAuthKey oauth) { this.CurrentUser = GetCurrentUser(oauth, null); this.Auth = oauth; this.Proxy = null; }
/// <summary> /// Saves the <see cref="Settings">settings</see> file to the client /// </summary> /// <param name="tokenKey"></param> /// <param name="tokenSecret"></param> public static void SaveConfiguration(string tokenKey, string tokenSecret, OAuthKey key, WebProxy proxy) { Dictionary<string, DirectoryInfo> appData = Utility.GetAppData(); Settings settings = new Settings(); if (proxy != null) { settings.Proxy.Address = proxy.Address.ToString(); NetworkCredential creds = (NetworkCredential)proxy.Credentials; settings.Proxy.Id = creds.UserName; settings.Proxy.Password = creds.Password; settings.Proxy.Enable = true; } else settings.Proxy.Enable = false; key.TokenKey = tokenKey; key.TokenSecret = tokenSecret; settings.OAuth.TokenKey = tokenKey; settings.OAuth.TokenSecret = tokenSecret; TextWriter writer = new StreamWriter(appData["data"] + "\\settings.yam"); XmlSerializer serializer = new XmlSerializer(typeof(Settings)); serializer.Serialize(writer, settings); writer.Close(); }