示例#1
0
        //
        // Used to authorize an HTTP request going to TwitPic
        //
        public static void AuthorizeTwitPic(OAuthConfig config, HttpWebRequest wc, string oauthToken, string oauthTokenSecret)
        {
            var headers = new Dictionary<string, string>() {
                { "oauth_consumer_key", config.ConsumerKey },
                { "oauth_nonce", MakeNonce () },
                { "oauth_signature_method", "HMAC-SHA1" },
                { "oauth_timestamp", MakeTimestamp () },
                { "oauth_token", oauthToken },
                { "oauth_version", "1.0" },
                //{ "realm", "http://api.twitter.com" }
            };
            string signurl = "http://api.twitter.com/1/account/verify_credentials.xml";
            // The signature is not done against the *actual* url, it is done against the verify_credentials.json one
            string signature = MakeSignature ("GET", signurl, headers);
            string compositeSigningKey = MakeSigningKey (config.ConsumerSecret, oauthTokenSecret);
            string oauth_signature = MakeOAuthSignature (compositeSigningKey, signature);

            headers.Add ("oauth_signature", OAuth.PercentEncode (oauth_signature));

            Console.WriteLine ("Headers: " + HeadersToOAuth (headers));
            wc.Headers.Add ("X-Verify-Credentials-Authorization", HeadersToOAuth (headers));
            wc.Headers.Add ("X-Auth-Service-Provider", signurl);
        }
示例#2
0
 // Constructor for xAuth
 public OAuthAuthorizer(OAuthConfig config, string xAuthUsername, string xAuthPassword)
 {
     this.config = config;
     this.xAuthUsername = xAuthUsername;
     this.xAuthPassword = xAuthPassword;
 }
示例#3
0
        public static void AuthorizeRequest(OAuthConfig config, WebClient wc, string oauthToken, string oauthTokenSecret, string method, Uri uri, string data)
        {
            var headers = new Dictionary<string, string>() {
                { "oauth_consumer_key", config.ConsumerKey },
                { "oauth_nonce", MakeNonce () },
                { "oauth_signature_method", "HMAC-SHA1" },
                { "oauth_timestamp", MakeTimestamp () },
                { "oauth_token", oauthToken },
                { "oauth_version", "1.0" }};
            var signatureHeaders = new Dictionary<string,string> (headers);

            // Add the data and URL query string to the copy of the headers for computing the signature
            if (data != null && data != ""){
                var parsed = HttpUtility.ParseQueryString (data);
                foreach (string k in parsed.Keys){
                    signatureHeaders.Add (k, OAuth.PercentEncode (parsed [k]));
                }
            }

            var nvc = HttpUtility.ParseQueryString (uri.Query);
            foreach (string key in nvc){
                if (key != null)
                    signatureHeaders.Add (key, OAuth.PercentEncode (nvc [key]));
            }

            string signature = MakeSignature (method, uri.GetLeftPart (UriPartial.Path), signatureHeaders);
            string compositeSigningKey = MakeSigningKey (config.ConsumerSecret, oauthTokenSecret);
            string oauth_signature = MakeOAuthSignature (compositeSigningKey, signature);

            headers.Add ("oauth_signature", OAuth.PercentEncode (oauth_signature));

            wc.Headers [HttpRequestHeader.Authorization] = HeadersToOAuth (headers);
        }
示例#4
0
 // Constructor for standard OAuth
 public OAuthAuthorizer(OAuthConfig config)
 {
     this.config = config;
 }