Example #1
0
        private void SetupOAuth(RestRequest request, OAuth1Token requestToken, string verifier)
        {
            string nonce     = GenerateNonce();
            string timeStamp = GenerateTimeStamp();

            QueryParameterCollection parameters = new QueryParameterCollection(request.Parameters);

            OAuth1RestRequest authRestRequest = request as OAuth1RestRequest;

            if (authRestRequest != null)
            {
                parameters.AddRange(authRestRequest.OAuthValues.Select(x => new QueryParameter(x.Key, x.Value)));
                authRestRequest.OAuthValues.Clear();
            }

            if (string.IsNullOrEmpty(requestToken.Token))
            {
                throw new ArgumentException("Null Request Token");
            }

            if (string.IsNullOrEmpty(requestToken.Secret))
            {
                throw new ArgumentException("Null Request Token Secret.");
            }

            if (string.IsNullOrEmpty(verifier))
            {
                throw new ArgumentException("Null Auth Verifier.");
            }

            var signatureBase = GenerateSignatureBase(
                request.RequestUrl,
                this.AppKey,
                requestToken.Token,
                request.Method.ToString(),
                timeStamp,
                nonce,
                verifier,
                parameters);

            // obtain a signature and add it to oauth header parameters
            var signature = GenerateSignature(this.AppSecret, requestToken.Secret, signatureBase);

            parameters.Add(RestConstants.OAuthSignature, signature);

            string authHeader = GenerateAuthorizationHeader(request.RequestUrl, parameters);

            request.Headers["Authorization"] = authHeader;
        }
Example #2
0
        private void SetupOAuth(RestRequest request, string callbackUrl)
        {
            string nonce     = GenerateNonce();
            string timeStamp = GenerateTimeStamp();

            QueryParameterCollection parameters = new QueryParameterCollection(request.Parameters);

            OAuth1RestRequest authRestRequest = request as OAuth1RestRequest;

            if (authRestRequest != null)
            {
                parameters.AddRange(authRestRequest.OAuthValues.Select(x => new QueryParameter(x.Key, x.Value)));
                authRestRequest.OAuthValues.Clear();
            }

            if (!string.IsNullOrWhiteSpace(callbackUrl))
            {
                parameters.Add(new QueryParameter(RestConstants.OAuthCallback, callbackUrl));
            }

            var signatureBase = GenerateSignatureBase(
                request.RequestUrl,
                this.AppKey,
                string.Empty,
                request.Method.ToString().ToUpperInvariant(),
                timeStamp,
                nonce,
                string.Empty,
                parameters);

            // obtain a signature and add it to oauth header parameters
            var signature = GenerateSignature(this.AppSecret, null, signatureBase);

            parameters.Add(RestConstants.OAuthSignature, signature);

            string authHeader = GenerateAuthorizationHeader(request.RequestUrl, parameters);

            request.Headers["Authorization"] = authHeader;
        }