Beispiel #1
0
        public override string RequestToken(HttpRequestBase request)
        {
            var code = request.Params["code"];

            if (String.IsNullOrEmpty(code))
            {
                return(OAuth2Consts.ACCESS_DENIED);
            }

            string tokenUrl = string.Format("https://graph.facebook.com/oauth/access_token?");
            string postData = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "redirect_uri", _client.CallBackUrl,
                "client_secret", _client.ClientSecret,
                "code", code
                );

            string responseJson = HttpPost(tokenUrl, postData);

            responseJson = responseJson.Replace("=", "\":\"").Replace("&", "\",\"");

            if (responseJson.Substring(0, 1) != "{")
            {
                responseJson = "{\"" + responseJson + "\"}";
            }
            return(JsonConvert.DeserializeAnonymousType(responseJson, new { access_token = "" }).access_token);
        }
        public override string RequestToken(HttpRequestBase request)
        {
            var oauthToken    = request["oauth_token"];
            var oauthVerifier = request["oauth_verifier"];

            if (String.IsNullOrEmpty(oauthToken) || String.IsNullOrEmpty(oauthVerifier))
            {
                return(OAuth2Consts.ACCESS_DENIED);
            }

            string postData = QueryStringBuilder.Build(
                "oauth_consumer_key", _client.ClientId,
                "oauth_nonce", _util.GetNonce(),
                "oauth_signature_method", "HMAC-SHA1",
                "oauth_timestamp", _util.GetTimeStamp(),
                "oauth_token", oauthToken,
                "oauth_verifier", oauthVerifier,
                "oauth_version", "1.0"
                );

            const string accessTokenUrl = "https://api.twitter.com/oauth/access_token";
            var          signature      = _util.GetSha1Signature("POST", accessTokenUrl, postData, _client.ClientSecret);
            var          responseText   = HttpPost(accessTokenUrl, postData + "&oauth_signature=" + Uri.EscapeDataString(signature));

            var twitterAuthResp = new TwitterAuthResponse(responseText);

            _client.Token       = twitterAuthResp.OAuthToken;
            _client.TokenSecret = twitterAuthResp.OAuthTokenSecret;

            return(twitterAuthResp.OAuthToken);
        }
        public void QueryStringBuilder_Build_Empty_QueryString_Should_Throw_Error()
        {
            var queryStringBuilder = new QueryStringBuilder();

            Assert.Throws <InvalidOperationException>(() =>
            {
                var str = queryStringBuilder.Build();
            });
        }
Beispiel #4
0
        public override string BeginAuthentication()
        {
            var qstring = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "response_type", "code",
                "redirect_uri", _client.CallBackUrl,
                "scope", _client.Scope
                );

            _oauthUrl = LoginUrlOauth + "/webapps/auth/protocol/openidconnect/v1/authorize?" + qstring;

            return _oauthUrl;
        }
        public void AddFilter()
        {
            var qsb = new QueryStringBuilder();
            var key = Guid.NewGuid();
            Expression <Func <Person, bool> > exp1 = x => x.Key == key;

            qsb.AddFilter(exp1);

            var pattern = $"?$filter=Ref_Key eq guid'{key}'&$format=json";
            var result  = qsb.Build();

            Assert.AreEqual(pattern, result);
        }
        public override string BeginAuthentication()
        {
            var qstring = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "response_type", "code",
                "redirect_uri", $"{_AbsoluteUri.TrimEnd('/')}/{_client.CallBackUrl.TrimStart('/')}",
                "scope", _client.Scope
                );

            _oauthUrl = LoginUrlOauth + "/webapps/auth/protocol/openidconnect/v1/authorize?" + qstring;

            return(_oauthUrl);
        }
        public void AddKey()
        {
            var qsb = new QueryStringBuilder();

            var key = Guid.NewGuid();

            qsb.AddKey(key);

            var pattern = $"(guid'{key}')?$format=json";
            var result  = qsb.Build();

            Assert.AreEqual(pattern, result);
        }
        public async Task <IApiResponse <IEnumerable <ReturnType> > > ExecuteCsvAsync <ReturnType>(
            string urlPattern, NameValueCollection nvc, QueryStringBuilder qsb, CancellationToken cancellationToken)
            where ReturnType : class
        {
            HttpStateModel state = null;

            try
            {
                ReplaceUrlPatterns(ref urlPattern, ref nvc);

                var url = $"{urlPattern}{qsb.Build()}";

                state = await ExecuteInternalAsync(url, cancellationToken);

                cancellationToken.ThrowIfCancellationRequested();

                if (state.Error)
                {
                    return(ApiResponse.FromError <IEnumerable <ReturnType> >(state.Meta, state.Response));
                }

                using (var reader = new CsvReader(new StringReader(state.Response), CultureInfo.InvariantCulture))
                {
                    var typeConverterOptions = new TypeConverterOptions();
                    typeConverterOptions.NullValues.Add("null");

                    reader.Configuration.TypeConverterCache.AddConverter <Instant>(new NodaTimeCsvConverter());
                    reader.Configuration.TypeConverterCache.AddConverter <SplitData>(new SplitCsvConverter());
                    reader.Configuration.TypeConverterCache.AddConverter <decimal>(new DecimalCsvConverter());
                    reader.Configuration.TypeConverterCache.AddConverter <int>(new IntCsvConverter());

                    cancellationToken.ThrowIfCancellationRequested();

                    var records = reader.GetRecords <ReturnType>().ToList().AsEnumerable();

                    cancellationToken.ThrowIfCancellationRequested();
                    logger.LogDebug("Correctly deserialized response");

                    return(ApiResponse.FromSucces(state.Meta, records));
                }
            }
            catch (OperationCanceledException tce)
            {
                logger.LogInformation("Task cancelled");
                return(await Task.FromCanceled <IApiResponse <IEnumerable <ReturnType> > >(cancellationToken));
            }
            catch (Exception ex)
            {
                return(ApiResponse.FromError <IEnumerable <ReturnType> >(state?.Meta ?? new ErrorHttpMetadata(), ex.ToString()));
            }
        }
Beispiel #9
0
        public override string BeginAuthentication()
        {
            var qstring = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "redirect_uri", _client.CallBackUrl,
                "scope", _client.Scope,
                "state", "",
                "display", "popup"
                );

            _oauthUrl = "https://www.facebook.com/dialog/oauth?" + qstring;

            return(_oauthUrl);
        }
        public override string BeginAuthentication()
        {
            var qstring = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "redirect_uri", $"{_AbsoluteUri.TrimEnd('/')}/{_client.CallBackUrl.TrimStart('/')}",
                "scope", _client.Scope,
                "state", "" //,
                            //"display", "popup"
                );

            _oauthUrl = "https://www.facebook.com/dialog/oauth?" + qstring;

            return(_oauthUrl);
        }
Beispiel #11
0
        public override string BeginAuthentication()
        {
            var qstring = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "redirect_uri", _client.CallBackUrl,
                "scope", _client.Scope,
                "state", "",
                "display", "popup"
                );

            _oauthUrl = "http://familyxiao.com:9090/familyxiao-signIn.html?" + qstring;

            return(_oauthUrl);
        }
Beispiel #12
0
        public override string RequestToken(HttpRequestBase request)
        {
            var code = request.Params["code"];
            if (String.IsNullOrEmpty(code))
                return OAuth2Consts.ACCESS_DENIED;

            var oauthUrl = ApiUrlOauth + "/v1/identity/openidconnect/tokenservice";
            var postData = QueryStringBuilder.Build(
                "grant_type", "authorization_code",
                "redirect_uri", _client.CallBackUrl,
                "code", code,
                "client_id", _client.ClientId,
                "client_secret", _client.ClientSecret
                );
            var responseJson = HttpPost(oauthUrl, postData);
            return JsonConvert.DeserializeAnonymousType(responseJson, new { access_token = "" }).access_token;
        }
Beispiel #13
0
        public override void Execute()
        {
            var a = new QueryStringBuilder();

            // "null"
            Console.WriteLine(a.Build()?.ToString() ?? "null");

            var b = QueryStringBuilder.Create();

            // "null"
            Console.WriteLine(b.Build()?.ToString() ?? "null");

            var c = QueryStringBuilder.Create("https://google.com");

            // "https://google.com/"
            Console.WriteLine(c.Build());
        }
        public GetMessagesPagingRequest(GetMessagesQuery query)
        {
            ChannelId = query.ChannelId;

            var queryBuilder = new QueryStringBuilder()
                               .AddParam("messageId", query.FromId);

            if (query.FromDateTime.HasValue)
            {
                var messageCreated = query.FromDateTime.Value.ToString("u");
                queryBuilder.AddParam("messageCreated", messageCreated);
            }

            if (query.Count.HasValue)
            {
                queryBuilder.AddParam("pageSize", query.Count);
            }

            _queryParams = queryBuilder.Build();
        }
Beispiel #15
0
        public override string RequestToken(HttpRequestBase request)
        {
            var code = request.Params["code"];

            if (String.IsNullOrEmpty(code))
            {
                return(OAuth2Consts.ACCESS_DENIED);
            }

            const string tokenUrl = "https://accounts.google.com/o/oauth2/token";
            var          postData = QueryStringBuilder.Build(
                "code", code,
                "client_id", _client.ClientId,
                "client_secret", _client.ClientSecret,
                "redirect_uri", _client.CallBackUrl,
                "grant_type", "authorization_code"
                );

            string resonseJson = HttpPost(tokenUrl, postData);

            return(JsonConvert.DeserializeAnonymousType(resonseJson, new { access_token = "" }).access_token);
        }
        public async Task <IApiResponse <ReturnType> > ExecuteJsonAsync <ReturnType>(
            string urlPattern, QueryStringBuilder qsb, CancellationToken cancellationToken)
            where ReturnType : class
        {
            var url = $"{urlPattern}{qsb.Build()}";

            HttpStateModel state = null;

            try
            {
                state = await ExecuteInternalAsync(url, cancellationToken);

                if (state.Error)
                {
                    return(ApiResponse.FromError <ReturnType>(state.Meta, state.Response));
                }

                cancellationToken.ThrowIfCancellationRequested();

                var data = JsonConvert.DeserializeObject <ReturnType>(state.Response, jsonSerializerSettings);

                cancellationToken.ThrowIfCancellationRequested();

                logger.LogDebug("Correctly deserialized response");

                return(ApiResponse.FromSucces(state.Meta, data));
            }
            catch (OperationCanceledException tce)
            {
                logger.LogInformation("Task cancelled");
                return(await Task.FromCanceled <IApiResponse <ReturnType> >(cancellationToken));
            }
            catch (Exception ex)
            {
                return(ApiResponse.FromError <ReturnType>(state.Meta, ex.ToString()));
            }
        }
        public override string RequestToken(HttpRequestBase request)
        {
            var code = request.Params["code"];

            if (String.IsNullOrEmpty(code))
            {
                return(OAuth2Consts.ACCESS_DENIED);
            }

            string tokenUrl = "https://graph.facebook.com/oauth/access_token?";
            string postData = QueryStringBuilder.Build(
                "client_id", _client.ClientId,
                "redirect_uri", $"{_AbsoluteUri.TrimEnd('/')}/{_client.CallBackUrl.TrimStart('/')}",
                "client_secret", _client.ClientSecret,
                "code", code
                );

            string responseJson = HttpPost(tokenUrl, postData);

            //Newtonsoft.Json.JsonReaderException
            //Invalid character after parsing property name. Expected ':' but got: a. Path '', line 1, position 4.
            //resonseJson = "{\"" + resonseJson.Replace("=", "\":\"").Replace("&", "\",\"") + "\"}";
            return(JsonConvert.DeserializeAnonymousType(responseJson, new { access_token = "" }).access_token);
        }
        public override string BeginAuthentication()
        {
            var qstring = QueryStringBuilder.Build(
                // Twitter relies on Callback URL setting on http://apps.twitter.com/
                // If you set client callback here it'll return 401
                //                "oauth_callback", _client.CallBackUrl,
                "oauth_consumer_key", _client.ClientId,
                "oauth_nonce", _util.GetNonce(),
                "oauth_signature_method", "HMAC-SHA1",
                "oauth_timestamp", _util.GetTimeStamp(),
                "oauth_version", "1.0"
                );

            const string requestTokenUrl = "https://api.twitter.com/oauth/request_token";
            var          signature       = _util.GetSha1Signature("POST", requestTokenUrl, qstring, _client.ClientSecret);
            var          responseText    = HttpPost(requestTokenUrl, qstring + "&oauth_signature=" + Uri.EscapeDataString(signature));

            var twitterAuthResp = new TwitterAuthResponse(responseText);

            const string authenticateUrl = "https://api.twitter.com/oauth/authenticate";
            var          oauthUrl        = authenticateUrl + "?oauth_token=" + twitterAuthResp.OAuthToken;

            return(oauthUrl);
        }