Esempio n. 1
0
        public string DeleteAccountAlert(string AlertId)
        {
            string response;

            try {
                response = session.Request(accessToken).Delete().ForUrl(String.Format(accountAlertDetailsLink, AlertId)).ToString();
            } catch {
                accessToken = renewAccessToken(authRepository, session);
                response    = session.Request(accessToken).Delete().ForUrl(String.Format(accountAlertDetailsLink, AlertId)).ToString();
            }         //            return session.Request(accessToken).Delete().ForUrl(String.Format("https://etws.etrade.com/accounts/rest/alerts/{0}", AlertId)).ToString();
            return(response);
        }
Esempio n. 2
0
 public string GetResponse(OAuthSession session, string url)
 {
     try {
         string response;
         try {
             response = session.Request(accessToken).Get().ForUrl(url).ToString();
         } catch (Exception E) {
             accessToken = renewAccessToken(authRepository, session);
             response    = session.Request(accessToken).Get().ForUrl(url).ToString();
         }
         return(response);
     } catch {
         return(null);
     }
 }
        private T Get <T>(object queryData = null) where T : IResource, new()
        {
            var resourceType = typeof(T);

            string url = GetUrl <T>(queryData);

            var serializer = new XmlSerializer(resourceType);

            ObeyRequestRateLimits(resourceType);

            try
            {
                using (var response = _session.Request(_accessToken).Get().ForUrl(url).ToWebResponse())
                    using (var responseStream = response.GetResponseStream())
                        using (var responseMemoryStream = new MemoryStream())
                        {
                            responseStream.CopyTo(responseMemoryStream);
                            responseMemoryStream.Position = 0;

                            try
                            {
                                return((T)serializer.Deserialize(responseMemoryStream));
                            }
                            catch (InvalidOperationException ex)
                            {
                                responseStream.Position = 0;

                                using (var streamReader = new StreamReader(responseMemoryStream))
                                {
                                    throw new DeserializeException(
                                              ex.Message,
                                              streamReader.ReadToEnd(),
                                              ex
                                              );
                                }
                            }
                        }
            }
            catch (OAuthException ex)
            {
                if (ex.InnerException != null && ex.InnerException.Message.Contains("401"))
                {
                    throw new AuthenticationException(ex.Message, ex);
                }

                throw;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Used to Check if the API key is valid or not.
        /// </summary>
        /// <param name="consumerkey"></param>
        /// <param name="consumersecret"></param>
        /// <returns></returns>
        public static Boolean vulndbCheckCredentials(String consumerkey, String consumersecret)
        {
            if (consumerkey == "" || consumersecret == "")
            {
                return(false);
            }
            try
            {
                var requestEndPoint   = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token");
                var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize");
                var accessEndPoint    = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token");
                var ctx = new OAuthConsumerContext
                {
                    ConsumerKey     = consumerkey,
                    ConsumerSecret  = consumersecret,
                    SignatureMethod = SignatureMethod.HmacSha1
                };
                var genericSession   = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint);
                var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/");
                var respText         = genericSession.Request().Get().ForUri(targetServiceUri).ToString();

                return(true);
            }
            catch (WebException ex)
            {
                using (var stream = ex.Response.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        Console.WriteLine(reader.ReadToEnd());
                        return(false);
                    }
            }
        }
Esempio n. 5
0
        static string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret)
        {
            OAuthConsumerContext consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = consumerKey,
                ConsumerSecret              = consumerSecret,
                SignatureMethod             = SignatureMethod.HmacSha1,
                UseHeaderForOAuthParameters = true
            };

            consumerContext.UseHeaderForOAuthParameters = true;
            OAuthSession oSession = new OAuthSession(consumerContext, GET_REQUEST_TOKEN, AuthorizeUrl, GET_ACCESS_TOKEN);

            oSession.AccessToken = new TokenBase
            {
                Token       = accessToken,
                ConsumerKey = consumerKey,
                TokenSecret = accessTokenSecret
            };
            IConsumerRequest consumerRequest = oSession.Request();

            consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method);
            consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri);
            consumerRequest = consumerRequest.SignWithToken();
            return(consumerRequest.Context.GenerateOAuthParametersForHeader());
        }
        static string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret)
        {
            OAuthConsumerContext consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = consumerKey,
                ConsumerSecret              = consumerSecret,
                SignatureMethod             = SignatureMethod.HmacSha1,
                UseHeaderForOAuthParameters = true
            };

            consumerContext.UseHeaderForOAuthParameters = true;

            //URIs not used - we already have Oauth tokens
            OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com",
                                                     "https://www.example.com",
                                                     "https://www.example.com");


            oSession.AccessToken = new TokenBase
            {
                Token       = accessToken,
                ConsumerKey = consumerKey,
                TokenSecret = accessTokenSecret
            };

            IConsumerRequest consumerRequest = oSession.Request();

            consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method);
            consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri);
            consumerRequest = consumerRequest.SignWithToken();
            return(consumerRequest.Context.GenerateOAuthParametersForHeader());
        }
        // unauthenticated connection method:

        /// <summary>
        /// Creates a connection with no authorization headers - used for requests that don't require authentication.
        /// This method does not actually perform the request - it returns the object to make the request with.
        /// </summary>
        /// <param name="query">The url to connect to.</param>
        /// <returns>IConsumerRequest.</returns>
        public IConsumerRequest UnauthenticatedConnection(string query)
        {
            var url = BaseUrl + query;

            if (AccessToken != null)
            {
                return(AuthenticatedQuery(query));
            }

            var consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = " ",
                ConsumerSecret              = " ",
                SignatureMethod             = DevDefined.OAuth.Framework.SignatureMethod.PlainText,
                UseHeaderForOAuthParameters = false
            };

            var consumerSession = new OAuthSession(consumerContext, RequestTokenUrl, AuthorizeUrl, AccessUrl);

            var getRequest = consumerSession
                             .Request()
                             .ForMethod(Constants.GET)
                             .ForUri(new Uri(url));

            return(getRequest);
        }
        /// <summary>
        /// <para>Performs the query specified in the "query" string to perform a request that requires authorization.
        /// </para><para>This method requires that either an accessToken has been set manually or
        /// that the GetVerificationCode() and AuthenticateWithVerificationCode(string code) methods have been called previously.
        /// </para><para>It returns the IConsumerRequest fully enabled to make the request specified in the "query" string.</para>
        /// </summary>
        /// <param name="query">The query string that will be added to the url and used to connect to the API with.</param>
        /// <returns>IConsumerRequest.</returns>
        public IConsumerRequest AuthenticatedQuery(string query)
        {
            var url = BaseUrl + query;

            if (AccessToken == null)
            {
                throw new AccessTokenIsNullException();
            }

            var consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = ConsumerKey,
                ConsumerSecret              = ConsumerSecret,
                SignatureMethod             = SignatureMethod.HmacSha1,
                UseHeaderForOAuthParameters = true
            };

            var consumerSession = new OAuthSession(consumerContext, RequestTokenUrl + ScopeOfRequest, AuthorizeUrl, AccessUrl)
            {
                AccessToken = AccessToken
            };

            var getRequest = consumerSession
                             .Request()
                             .ForMethod(Constants.GET)
                             .ForUri(new Uri(url))
                             .SignWithToken(AccessToken);

            return(getRequest);
        }
Esempio n. 9
0
        private async Task FillCampaigns(OAuthSession newSession)
        {
            HttpWebRequest request =
                newSession.Request().Get().ForUrl("https://api.obsidianportal.com/v1/users/me.json").ToWebRequest();

            JObject meObject;

            using (
                WebResponse response = await Task.Factory.FromAsync(
                    request.BeginGetResponse,
                    request.EndGetResponse,
                    null))
                using (var streamReader = new StreamReader(response.GetResponseStream()))
                    using (var jsonReader = new JsonTextReader(streamReader))
                        meObject = JObject.Load(jsonReader);
            var campaigns = (JArray)meObject["campaigns"];

            _settings.UserName = (string)meObject["username"];
            UserName           = _settings.UserName;
            _settings.Save();

            AllCampaigns = new ObservableCollection <CampaignInfo>(
                campaigns.Select(
                    c => new CampaignInfo
            {
                Name = (string)c["name"],
                Id   = (string)c["id"]
            }));

            CurrentCampaign = AllCampaigns.FirstOrDefault(c => c.Id == _settings.LastCampaignId);
        }
Esempio n. 10
0
        private async void LoadCharacter(CharacterInfo character)
        {
            if (character == null)
            {
                return;
            }

            if (character.Id == null)
            {
                TargetCharacter = new CharacterSummary {
                    Name = "<New Character>"
                };
                return;
            }

            OAuthSession   newSession = CreateOAuthSession();
            HttpWebRequest request    = newSession.Request()
                                        .ForUrl(
                $"https://api.obsidianportal.com/v1/campaigns/{character.CampaignId}/characters/{character.Id}.json")
                                        .Get().
                                        ToWebRequest();

            JObject charObject;

            using (
                WebResponse response = await Task.Factory.FromAsync(
                    request.BeginGetResponse,
                    request.EndGetResponse,
                    null))
                using (var streamReader = new StreamReader(response.GetResponseStream()))
                    using (var jsonReader = new JsonTextReader(streamReader))
                        charObject = JObject.Load(jsonReader);

            TargetCharacter = ToSummary(charObject);
        }
Esempio n. 11
0
        /// <summary>
        /// Checks a single entry agasint vulnDB Search API.
        /// </summary>
        /// <param name="consumerkey"></param>
        /// <param name="consumersecret"></param>
        /// <param name="Application"></param>
        /// <returns></returns>
        public static string vulndb_appCheck(String consumerkey, String consumersecret, String Application)
        {
            try
            {
                var requestEndPoint   = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token");
                var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize");
                var accessEndPoint    = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token");
                var ctx = new OAuthConsumerContext
                {
                    ConsumerKey     = consumerkey,
                    ConsumerSecret  = consumersecret,
                    SignatureMethod = SignatureMethod.HmacSha1
                };
                var genericSession   = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint);
                var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/search_query?query=\"" + Application.ToString() + "\"");
                var respText         = genericSession.Request().Get().ForUri(targetServiceUri).ToString();

                return(respText);
            }
            catch (WebException ex)
            {
                using (var stream = ex.Response.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        Console.WriteLine(reader.ReadToEnd());
                        return("Nothing Found for: " + Application.ToString());
                    }
            }
        }
    public string GetResponse(OAuthSession session, string url)
    {
        IToken accessToken = MyTokenBase;
        var    response    = session.Request(accessToken).Get().ForUrl(url).ToString();

        return(response);
    }
Esempio n. 13
0
        /// <summary>
        /// Used to Check if the API key is valid or not.
        /// </summary>
        /// <param name="consumerkey"></param>
        /// <param name="consumersecret"></param>
        /// <returns></returns>
        public static string CMS_Auditor(String consumerkey, String consumersecret)
        {
            try
            {
                var requestEndPoint   = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token");
                var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize");
                var accessEndPoint    = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token");
                var ctx = new OAuthConsumerContext
                {
                    ConsumerKey     = consumerkey,
                    ConsumerSecret  = consumersecret,
                    SignatureMethod = SignatureMethod.HmacSha1
                };
                var genericSession   = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint);
                var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/search_query?utf8=✓&query=teamviewer");
                var respText         = genericSession.Request().Get().ForUri(targetServiceUri).ToString();

                return(respText);
            }
            catch (WebException ex)
            {
                using (var stream = ex.Response.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        Console.WriteLine(reader.ReadToEnd());
                        return("Please Check your API Key and Secret");
                    }
            }
        }
Esempio n. 14
0
        private static string GetDevDefinedOAuthHeader(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, HttpWebRequest webRequest, string requestBody)
        {
            OAuthConsumerContext consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = consumerKey,
                SignatureMethod             = SignatureMethod.HmacSha1,
                ConsumerSecret              = consumerSecret,
                UseHeaderForOAuthParameters = true
            };

            //We already have OAuth tokens, so OAuth URIs below are not used - set to example.com
            OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com",
                                                     "https://www.example.com",
                                                     "https://www.example.com");

            oSession.AccessToken = new TokenBase
            {
                Token       = accessToken,
                ConsumerKey = consumerKey,
                TokenSecret = accessTokenSecret
            };

            IConsumerRequest consumerRequest = oSession.Request();

            consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method);
            if (requestBody != null)
            {
                consumerRequest = consumerRequest.Post().WithRawContentType(webRequest.ContentType).WithRawContent(System.Text.Encoding.ASCII.GetBytes(requestBody));
            }
            consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri);
            consumerRequest = consumerRequest.SignWithToken();
            return(consumerRequest.Context.GenerateOAuthParametersForHeader());
        }
        public void GoogleConsumer()
        {
            X509Certificate2 certificate = TestCertificates.OAuthTestCertificate();

            string requestUrl       = "https://www.google.com/accounts/OAuthGetRequestToken";
            string userAuthorizeUrl = "https://www.google.com/accounts/accounts/OAuthAuthorizeToken";
            string accessUrl        = "https://www.google.com/accounts/OAuthGetAccessToken";
            string callBackUrl      = "http://www.mysite.com/callback";

            var consumerContext = new OAuthConsumerContext
            {
                ConsumerKey     = "weitu.googlepages.com",
                SignatureMethod = SignatureMethod.RsaSha1,
                Key             = certificate.PrivateKey
            };

            var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl)
                          .WithQueryParameters(new { scope = "http://www.google.com/m8/feeds" });

            // get a request token from the provider
            IToken requestToken = session.GetRequestToken();

            // generate a user authorize url for this token (which you can use in a redirect from the current site)
            string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl);

            // exchange a request token for an access token
            IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken);

            // make a request for a protected resource
            string responseText = session.Request().Get().ForUrl("http://www.google.com/m8/feeds/contacts/default/base").ToString();
        }
Esempio n. 16
0
        public ActionResult Exercises()
        {
            OAuthSession session = BuildSession();

            string response = session.Request().ForMethod("GET").ForUrl("http://www.khanacademy.org/api/v1/user/exercises").SignWithToken().ReadBody();

            return(View((object)response));
        }
Esempio n. 17
0
        private static void Main()
        {
            string requestUrl       = "https://apis.daum.net/oauth/requestToken";
            string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize";
            string accessUrl        = "https://apis.daum.net/oauth/accessToken";
            string callbackUrl      = "oob";

            var consumerContext = new OAuthConsumerContext
            {
                //TODO:Daum OAuth소개 페이지(https://apis.daum.net/oauth/consumer/list)에서 등록된 Consumer 정보 입력
                ConsumerKey     = "eb3eff10-b95d-455c-8572-e7858a2b34d0",
                ConsumerSecret  = "suz6.HUjzlaG-S9ezBzFQ11FtKhQvv8cdT-9C_hWBFthpUmMTsOuUA00",
                SignatureMethod = SignatureMethod.HmacSha1,
            };

            //OAuth 준비
            var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl);

            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_callback", callbackUrl }
            });

            // 1. request token 받기
            DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken();

            // 인증주소 받기
            string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callbackUrl);

            // 2. 사용자 인증 하기
            System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요.");
            System.Console.WriteLine(authorizationLink);
            System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:");
            string inputVerifier = System.Console.ReadLine();

            // 얻어진 Verifier값을 포함시키기
            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_verifier", inputVerifier }
            });

            // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기
            DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken);

            // '게시글 쓰기(한줄메모장)' API를 호출
            System.Console.WriteLine("OAuth를 통한 인증으로 '게시글 쓰기(한줄메모장)'를 호출하고 XML로 응답 받는 테스트를 합니다.");
            string apiUrl = "http://apis.daum.net/cafe/write_article/{cafeCode}/{boardId}.xml?";

            //{cafeCode} - 카페코드 :
            //{boardId}
            apiUrl += string.Format("content={0}&", "여기는 메모를 삽입합니다.");
            apiUrl += string.Format("hideyn={0}&", "N"); //비밀글일때 Y

            string responseText = session.Request().Get().ForUrl(apiUrl).ToString();

            System.Console.WriteLine(responseText);
            System.Console.ReadLine();
        }
Esempio n. 18
0
        /// <summary>
        /// Creates a HttpRequest with oAuthSession (OAuth Token) and gets the response with invalidating user
        /// from QuickBooks for this app
        /// For Authorization: The request header must include the OAuth parameters defined by OAuth Core 1.0 Revision A.
        ///
        /// If the disconnect is successful, then the HTTP status code is 200 and
        /// the XML response includes the <ErrorCode> element with a 0 value.
        /// If an HTTP error is detected, then the HTTP status code is not 200.
        /// If an HTTP error is not detected but the disconnect is unsuccessful,
        /// then the HTTP status code is 200 and the response XML includes the <ErrorCode> element with a non-zero value.
        /// For example,  if the OAuth access token expires or is invalid for some other reason, then the value of <ErrorCode> is 270.
        /// </summary>
        /// <param name="sender">Sender of the event.</param>
        /// <param name="e">Event args.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            OAuthConsumerContext consumerContext = new OAuthConsumerContext
            {
                ConsumerKey     = ConfigurationManager.AppSettings["consumerKey"].ToString(),
                SignatureMethod = SignatureMethod.HmacSha1,
                ConsumerSecret  = ConfigurationManager.AppSettings["consumerSecret"].ToString()
            };

            OAuthSession oSession = new OAuthSession(consumerContext, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlRequestToken,
                                                     Constants.OauthEndPoints.AuthorizeUrl,
                                                     Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlAccessToken);

            oSession.ConsumerContext.UseHeaderForOAuthParameters = true;
            if ((Session["accessToken"] + "").Length > 0)
            {
                oSession.AccessToken = new TokenBase
                {
                    Token       = HttpContext.Current.Session["accessToken"].ToString(),
                    ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(),
                    TokenSecret = HttpContext.Current.Session["accessTokenSecret"].ToString()
                };

                IConsumerRequest conReq = oSession.Request();
                conReq = conReq.Get();
                conReq = conReq.ForUrl(Constants.IaEndPoints.DisconnectUrl);
                try
                {
                    conReq = conReq.SignWithToken();
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                //Used just see the what header contains
                string header = conReq.Context.GenerateOAuthParametersForHeader();

                //This method will clean up the OAuth Token
                txtServiceResponse = conReq.ReadBody();

                //Reset All the Session Variables
                HttpContext.Current.Session.Remove("oauthToken");

                // Add the invalid access token into session for the display of the Disconnect btn
                HttpContext.Current.Session["InvalidAccessToken"] = HttpContext.Current.Session["accessToken"];

                // Dont remove the access token since this is required for Reconnect btn in the Blue dot menu
                // HttpContext.Current.Session.Remove("accessToken");

                // Dont Remove flag since we need to display the blue dot menu for Reconnect btn in the Blue dot menu
                // HttpContext.Current.Session.Remove("Flag");
                DisconnectFlg = "User is Disconnected from QuickBooks!";
                //Remove the Oauth access token from the OauthAccessTokenStorage.xml
                OauthAccessTokenStorageHelper.RemoveInvalidOauthAccessToken(Session["FriendlyEmail"].ToString(), Page);
            }
        }
Esempio n. 19
0
        private static void Main()
        {
            string requestUrl       = "https://apis.daum.net/oauth/requestToken";
            string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize";
            string accessUrl        = "https://apis.daum.net/oauth/accessToken";
            string callBackUrl      = "oob";

            var consumerContext = new OAuthConsumerContext
            {
                //TODO:Daum OAuth소개 페이지(https://apis.daum.net/oauth/consumer/list)에서 등록된 Consumer 정보 입력
                ConsumerKey     = "{발급 받은 Key를 입력하세요.}",
                ConsumerSecret  = "{발급 받은 Secret를 입력하세요.}",
                SignatureMethod = SignatureMethod.HmacSha1,
            };

            //OAuth 준비
            var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl);

            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_callback", callBackUrl }
            });

            // 1. request token 받기
            DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken();

            // 인증주소 받기
            string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl);

            // 2. 사용자 인증 하기
            System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요.");
            System.Console.WriteLine(authorizationLink);
            System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:");
            string inputVerifier = System.Console.ReadLine();

            // 얻어진 Verifier값을 포함시키기
            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_verifier", inputVerifier }
            });

            // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기
            DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken);

            // '요즘 가입여부 확인하기' API를 통해 인증 확인하기
            System.Console.WriteLine("OAuth를 통한 인증으로 '요즘 글쓰기'를 테스트합니다.");
            ConsumerRequest cr = session.Request().Post().ForUrl("https://apis.daum.net/yozm/v1_0/message/add.xml");

            cr = cr.WithFormParameters(new Dictionary <string, string>()
            {
                { "message", System.Web.HttpUtility.UrlEncode("%$가나다^$%^%$^RTY<><><><><") }
            });
            string responseText = cr.ToString();

            System.Console.WriteLine(responseText);
            System.Console.ReadLine();
        }
Esempio n. 20
0
        /// <summary>
        /// Get the resource data from the URI.
        /// </summary>
        /// <param name="resourceUri">The resource URI containing the resource data.</param>
        /// <returns>The resource data.</returns>
        public string GetResourceData(Uri resourceUri)
        {
            if (resourceUri == null)
            {
                throw new ArgumentNullException("resourceUri");
            }

            // Make sure an access token has been generated.
            if (_oAuthSession != null && _oAuthSession.AccessToken != null)
            {
                // Make a request for a protected resource
                return(_oAuthSession.Request().Get().ForUrl(resourceUri.ToString()).ToString());
            }
            else
            {
                throw new Exception("An access token has not been generated. Generate an access token before requesting resource data.");
            }
        }
Esempio n. 21
0
        private static void Main()
        {
            string requestUrl       = "https://apis.daum.net/oauth/requestToken";
            string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize";
            string accessUrl        = "https://apis.daum.net/oauth/accessToken";
            string callbackUrl      = "oob";

            var consumerContext = new OAuthConsumerContext
            {
                //TODO:Daum OAuth소개 페이지(https://apis.daum.net/oauth/consumer/list)에서 등록된 Consumer 정보 입력
                ConsumerKey     = "eb3eff10-b95d-455c-8572-e7858a2b34d0",
                ConsumerSecret  = "suz6.HUjzlaG-S9ezBzFQ11FtKhQvv8cdT-9C_hWBFthpUmMTsOuUA00",
                SignatureMethod = SignatureMethod.HmacSha1,
            };

            //OAuth 준비
            var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl);

            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_callback", callbackUrl }
            });

            // 1. request token 받기
            DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken();

            // 인증주소 받기
            string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callbackUrl);

            // 2. 사용자 인증 하기
            System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요.");
            System.Console.WriteLine(authorizationLink);
            System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:");
            string inputVerifier = System.Console.ReadLine();

            // 얻어진 Verifier값을 포함시키기
            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_verifier", inputVerifier }
            });

            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "content", System.Web.HttpUtility.HtmlEncode("~다!음@ #요$즘% ^특&수*문(자) -_\'발=+송\\| \"테<스>;트/") }
            });
            //session.WithQueryParameters(new Dictionary<string, string>() { { "content", System.Web.HttpUtility.UrlEncode("한글") } });

            // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기
            DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken);

            // '요즘 가입여부 확인하기' API를 통해 인증 확인하기
            System.Console.WriteLine("OAuth를 통한 인증으로 '요즘 가입여부 확인하기'를 테스트합니다.");
            string responseText = session.Request().Post().ForUrl("https://apis.daum.net/cafe/write_article/JJGO/JVYh.xml?").ToString();

            System.Console.WriteLine(responseText);
            System.Console.ReadLine();
        }
        /// <summary>
        /// <see cref="IBaseOAuthService{T}.Get{K}(string, string)"/>
        /// </summary>
        public K Get <K>(string resource, string resourceContext) where K : new()
        {
            try
            {
                var webRequest = _session.Request().WithTimeout(TIMEOUT).Get().ForUrl(_baseUrl + resourceContext + resource).ToWebRequest();

                using (var response = webRequest.GetResponse() as HttpWebResponse)
                {
                    if (response != null)
                    {
                        using (var reader = new StreamReader(response.GetResponseStream()))
                        {
                            return(JsonConvert.DeserializeObject <K>(reader.ReadToEnd()));
                        }
                    }
                }
            }
            catch (WebException wex)
            {
                if (wex.Response != null)
                {
                    using (var errorResponse = wex.Response as HttpWebResponse)
                    {
                        using (var reader = new StreamReader(errorResponse.GetResponseStream()))
                        {
                            ErrorResponse er = JsonConvert.DeserializeObject <ErrorResponse>(reader.ReadToEnd());

                            throw new JiraException(er);
                        }
                    }
                }
                else
                {
                    ErrorResponse er = new ErrorResponse();
                    er.ErrorMessages    = new string[1];
                    er.ErrorMessages[0] = wex.Message;

                    throw new JiraException(er);
                }
            }

            return(default(K));
        }
Esempio n. 23
0
        public static void Main(string[] args)
        {
            string requestTokenUrl  = "https://api.projectplace.com/initiate";
            string authorizationUrl = "https://api.projectplace.com/authorize";
            string tokenUrl         = "https://api.projectplace.com/token";
            string apiEndpoint      = "https://api.projectplace.com";
            string consumerKey      = "APPLICATION_KEY_GOES_HERE";
            string consumerSecret   = "APPLICATION_SECRET_GOES_HERE";
            IToken accessToken      = null;

            // 1. If you already have an access token - uncomment this section and enter it here.
            //IToken accessToken = new TokenBase();
            //accessToken.Token = "ACCESS_TOKEN_KEY_GOES_HERE";
            //accessToken.TokenSecret = "ACCESS_TOKEN_SECRET_GOES_HERE";

            // 2. Create the consumer context
            OAuthConsumerContext consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = consumerKey,
                ConsumerSecret              = consumerSecret,
                SignatureMethod             = SignatureMethod.HmacSha1,
                UseHeaderForOAuthParameters = true,
            };

            // 3. Start session
            OAuthSession session = new OAuthSession(consumerContext, requestTokenUrl, authorizationUrl, tokenUrl);

            // 4. If you do not have an access token, you will first have to authorize
            // access. In this part we formulate a URI which you must open in a web-broser.
            // Once you have completed the log-in and accepted access for the application
            // You will be redirected to whatever page is in the applications callback
            // Simply check the URL and look for the oauth_verifer parameter, and copy that
            if (accessToken == null)
            {
                IToken requestToken = session.GetRequestToken();

                string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken);

                Console.WriteLine("Authorize this application by going to {0}", authorizationLink);
                Console.WriteLine("Then enter the oauth_verifier here:");
                string verificationCode = Console.ReadLine();

                accessToken = session.ExchangeRequestTokenForAccessToken(requestToken, verificationCode);
                Console.WriteLine("Here is your new access token: {0} with secret: {1}\n", accessToken.Token, accessToken.TokenSecret);
            }

            // 5. We have an access token - assign it to the session
            session.AccessToken = accessToken;

            // 6. Lets ask for a protected resource, such as your own profile
            string  responseText = session.Request().Get().ForUrl(apiEndpoint + "/1/user/me/profile").ToString();
            Profile profile      = JsonConvert.DeserializeObject <Profile>(responseText);

            Console.WriteLine("Successfully fetched profile for {0} {1}", profile.first_name, profile.last_name);
        }
Esempio n. 24
0
        private static void GetHistoricalMatchupData()
        {
            StreamWriter sw = new StreamWriter(@"Data\AllMatchupScores" + DateTime.Now.ToString("yy-MM-dd.hh.mm.ss") + ".tab",
                                               false);
            List <string> weeks = new List <string>
            {
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "16"
            };

            try
            {
                Dictionary <string, List <string> > seasonIds = GetAllSeasonIds();

                //write header line
                sw.WriteLine(
                    "Week\tWeekStart\tWeekEnd\tIsPlayoffs\tTeam1\tTeam2\tTeam1Points\tTeam2Points\tTeam1ExpPoints\tTeam2ExpPoints");

                foreach (string season in seasonIds.Keys)
                {
                    List <string> seasonKeys = seasonIds[season];

                    foreach (string week in weeks)
                    {
                        string scoreBoardQuery = "league/" + seasonKeys[0] + ".l." + seasonKeys[1] + "/scoreboard;week=" +
                                                 week;

                        IConsumerRequest responseRequest = session.Request().Get().ForUrl(ApiUrl + scoreBoardQuery);

                        List <Matchup> matchupData = new List <Matchup>();
                        //WriteOutScoreboardData(responseRequest, sw, week, ref matchupData, currentRosters);
                    }
                }
            }
            catch (Exception e)
            {
                LogError(e);
            }

            sw.Close();
        }
Esempio n. 25
0
        static void Main(string[] args)
        {
            string requestUrl       = "https://apis.daum.net/oauth/requestToken";
            string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize";
            string accessUrl        = "https://apis.daum.net/oauth/accessToken";
            string callbackUrl      = "oob";

            var consumerContext = new OAuthConsumerContext
            {
                //Daum OAuth소개 페이지(http://dna.daum.net/myapi/authapi)에서 등록된 Consumer 정보 입력
                ConsumerKey     = "[프로필 API용 OAuth 컨슈머 등록한 뒤 발급된 Cosumer키를 입력하세요]",
                ConsumerSecret  = "[프로필 API용 OAuth 컨슈머 등록한 뒤  발급된 Cosumer Secret키를 입력하세요]",
                SignatureMethod = SignatureMethod.HmacSha1,
            };

            //OAuth 준비
            var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl);

            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_callback", callbackUrl }
            });

            // 1. request token 받기
            DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken();

            // 인증주소 받기
            string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callbackUrl);

            // 2. 사용자 인증 하기
            System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요.");
            System.Console.WriteLine(authorizationLink);
            System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:");
            string inputVerifier = System.Console.ReadLine();

            // 얻어진 Verifier값을 포함시키기
            session.WithQueryParameters(new Dictionary <string, string>()
            {
                { "oauth_verifier", inputVerifier }
            });

            // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기
            DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken);

            // '프로필 정보보기' API를 통해 인증 확인하기
            System.Console.WriteLine("OAuth를 통한 인증으로 '프로필 정보보기'를 테스트합니다.");
            string responseText = session.Request().Post().ForUrl("https://apis.daum.net/profile/show.xml").ToString();

            System.Console.WriteLine(responseText);
            System.Console.ReadLine();
        }
Esempio n. 26
0
        public String AccessProtectedResource(HMEntities.UserProfiles.User currentUser, String parameters)
        {
            String       URL          = Chpp.ResourcesURL + "?" + parameters;
            OAuthSession oAuthSession = GetOAuthSession(Chpp.ConsumerKey, Chpp.ConsumerSecret);

            oAuthSession.AccessToken = new TokenBase()
            {
                ConsumerKey = Chpp.ConsumerKey, Token = currentUser.accessToken, TokenSecret = currentUser.accessTokenSecret
            };

            IConsumerRequest request = oAuthSession.Request().Get().ForUrl(URL);

            return(request.ToString());
        }
		public void TokenSecretNotIncludedInQueryParametersForGetRequest()
		{
			var session = new OAuthSession(new OAuthConsumerContext {ConsumerKey = "consumer"}, "http://localhost/request",
			                               "http://localhost/userauth", "http://localhost/access");

			var accessToken = new TokenBase {ConsumerKey = "consumer", Token = "token", TokenSecret = "secret"};

			RequestDescription description = session
				.Request(accessToken)
				.Get()
				.ForUrl("http://localhost/")
				.SignWithToken()
				.GetRequestDescription();

			Assert.False(description.Url.ToString().Contains(Parameters.OAuth_Token_Secret));
		}
		public void TokenSecretNotIncludedInAuthorizationHeaderForPostRequestWithUseAuthorizationHeaders()
		{
			var session = new OAuthSession(new OAuthConsumerContext {ConsumerKey = "consumer", UseHeaderForOAuthParameters = true}, "http://localhost/request",
			                               "http://localhost/userauth", "http://localhost/access");

			var accessToken = new TokenBase {ConsumerKey = "consumer", Token = "token", TokenSecret = "secret"};

			RequestDescription description = session
				.Request(accessToken)
				.Post()
				.ForUrl("http://localhost/")
				.SignWithToken()
				.GetRequestDescription();

			Assert.False(description.Headers["Authorization"].Contains(Parameters.OAuth_Token_Secret));
		}
Esempio n. 29
0
        private async Task LoadInformation()
        {
            OAuthSession newSession = CreateOAuthSession();

            await FillCampaigns(newSession);

            CharacterInfo foundCurrentCharacter = null;

            foreach (CampaignInfo campaign in AllCampaigns)
            {
                HttpWebRequest request =
                    newSession.Request()
                    .ForUrl($"http://api.obsidianportal.com/v1/campaigns/{campaign.Id}/characters.json")
                    .Get()
                    .ToWebRequest();
                JArray charactersObject;
                using (
                    WebResponse response = await Task.Factory.FromAsync(
                        request.BeginGetResponse,
                        request.EndGetResponse,
                        null))
                    using (var streamReader = new StreamReader(response.GetResponseStream()))
                        using (var jsonReader = new JsonTextReader(streamReader))
                            charactersObject = JArray.Load(jsonReader);

                campaign.Characters = new ObservableCollection <CharacterInfo>(
                    charactersObject.Select(
                        c => new CharacterInfo
                {
                    Id         = (string)c["id"],
                    Name       = (string)c["name"],
                    Player     = (string)c["author"]["username"],
                    CampaignId = campaign.Id
                }));

                campaign.Characters.Add(
                    new CharacterInfo {
                    Id = null, CampaignId = campaign.Id, Name = "<New>", Player = "<New>"
                });

                foundCurrentCharacter = foundCurrentCharacter ??
                                        campaign.Characters.FirstOrDefault(c => c.Id == _settings.LastCharacterId);
            }

            CurrentCharacter = foundCurrentCharacter;
        }
Esempio n. 30
0
        public string GetResource(string parameters)
        {
            System.Console.Out.WriteLine("Requesting: {0}", parameters);

            string           url     = OAuthProtectedResourceUrl + "?" + parameters;
            IConsumerRequest request = _oAuthSession.Request().Get().ForUrl(url);

            string result = request.ToString();

            if (result.Contains(@"chpperror.xml")) // <FileName>chpperror.xml</FileName>
            {
                int    errorCode        = -1;
                string errorDescription = "unknown CHPP error";

                try
                {
                    XDocument doc    = XDocument.Load(new StringReader(result));
                    XElement  elRoot = doc.Root;

                    if (elRoot != null)
                    {
                        XElement elErrorCode = elRoot.Element("ErrorCode");
                        if (elErrorCode != null)
                        {
                            int.TryParse(elErrorCode.Value, out errorCode);
                        }

                        XElement elErrorDescription = elRoot.Element("Error");
                        if (elErrorDescription != null && !string.IsNullOrEmpty(elErrorDescription.Value))
                        {
                            errorDescription = elErrorDescription.Value;
                        }
                    }
                }
                finally
                {
                    throw new ChppException(errorCode, errorDescription);
                }
            }

            return(result);
        }