Source Code for Me (s-c.me)

Allows you to paste souce code to blogs! Adapted for Twitter! Here is Search Form in case you missed your code.
Code:
Selected Language:
Show Linenumbers:
Short link for Twitter:
HTML:

HTML view:

Copy Source | Copy HTML
  1. /// <summary>
  2.         /// ÐŸÑ€Ð¾ÑÑ‚ая Ð¿Ð¾Ð¿Ñ‹Ñ‚ка Ð·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ñ‚ся
  3.         /// </summary>
  4.         /// <param name="user"></param>
  5.         /// <returns></returns>
  6.         public override bool LogInto(UserAccaunt user)
  7.         {
  8.             try
  9.             {
  10.                 OAuthTokens tokens = Configuration.GetTokens(user.username);
  11.                 if(String.IsNullOrEmpty(tokens.AccessToken))
  12.                 {
  13.                     //нет ÐºÐ»ÑŽÑ‡Ð°, Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ð¼ Ð°ÑƒÑ‚ентификацию.
  14.                     //залогинимся Ð² Ñ‚виттер, Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ð¼ ÐºÑƒÐºÑƒ Ð¸ Ð¿ÐµÑ€ÐµÐ´Ð°Ð´Ð¸Ð¼ ÐµÐµ Ð´Ð°Ð»ÑŒÑˆÐµ
  15.                     //0
  16.                     OAuthTokenResponse response = OAuthUtility.GetRequestToken(tokens.ConsumerKey,
  17.                         tokens.ConsumerSecret, String.Empty);
  18.                     //1
  19.                     HttpWebRequest myHttpWebRequest = (HttpWebRequest)
  20.                         WebRequest.Create(OAuthUtility.BuildAuthorizationUri(response.Token));
  21.                     myHttpWebRequest.Method = "GET";
  22.                     myHttpWebRequest.AllowAutoRedirect = false;
  23.                    // myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookie);
  24.                     HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
  25.                     string result = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding).ReadToEnd();
  26.                     sCookie = CookieParse(myHttpWebResponse.Headers[HttpResponseHeader.SetCookie]);
  27.                     myHttpWebResponse.Close();
  28.                     ///////////////////////
  29.                     Match m = new Regex(@"<input.*?name\W+authenticity_token.+?value\W+(\w+)\W", Regexoptions).Match(result);
  30.                     if (!m.Success) throw new Exception("Twitter authenticity_token problems!");
  31.                     myHttpWebRequest = MakeRequest("https://twitter.com/oauth/authorize");
  32.                     myHttpWebRequest.AllowAutoRedirect = false;
  33.                     myHttpWebRequest.Method = "POST";
  34.                     myHttpWebRequest.Referer = "http://twitter.com";
  35.                     string sQueryString =
  36.                         String.Format(
  37.                             "authenticity_token={0}&return_to_ssl=false&session%5Busername_or_email%5D={1}&session%5Bpassword%5D={2}&oauth_token={3}",
  38.                     m.Groups[1].Value,
  39.                     user.username,
  40.                     user.password,
  41.                     response.Token
  42.                             );
  43.                     //***************//
  44.                     byte[] byteArr = _encoding.GetBytes(sQueryString);
  45.                     myHttpWebRequest.ContentLength = byteArr.Length;
  46.                     myHttpWebRequest.GetRequestStream().Write(byteArr,  0, byteArr.Length);
  47.                     /////////////////////////
  48.                     myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
  49.                     sCookie = CookieParse(myHttpWebResponse.Headers[HttpResponseHeader.SetCookie]);
  50.                     result = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding).ReadToEnd();
  51.                     myHttpWebResponse.Close();
  52.                     //в Ñ‚еории Ð¾Ñ‚сюда Ð½ÑƒÐ¶Ð½Ð¾ Ð¸Ð·Ð²Ð»ÐµÑ‡ÑŒ PIN Ð´Ð»Ñ Ð²ÑÑ‚авки
  53.                     m = new Regex(@"\Woauth_pin\W\D+(\d+)\D", Regexoptions).Match(result);
  54.                     if(!m.Success) throw new Exception("не ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ PIN!");
  55.  
  56.                     response = OAuthUtility.GetAccessToken(tokens.ConsumerKey,
  57.                                                 tokens.ConsumerSecret, response.Token, m.Groups[1].Value);
  58.                     if (response != null)
  59.                     {
  60.                         //сохраняем Ñ‚окен, Ñ‡Ñ‚обы ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð¸Ð¹ Ñ€Ð°Ð· Ð½Ðµ Ð¿Ñ€Ð¾Ñ…одить Ð²ÑÑŽ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÑƒ.
  61.                         Configuration.SetTokens(user.username, response);
  62.                     }
  63.                 }
  64.                 LogedInAs = user;
  65.                 //Log("Twitter uses only OAuth2.0 authentification. Take care.");
  66.                 return true;
  67.             }catch(Exception e1)
  68.             {
  69.                 Log("Twitter OAuth "+e1.Message);
  70.                 return false;
  71.             }
  72.         }




Based on Manoli.Net's CodeFormatter. Made by Topbot (c) 2008-2012