public HttpWebResponse GetResponse(OAuthContext context, TokenBase accessToken) { SignContext(context, accessToken); Uri uri = context.GenerateUri(); Console.WriteLine("Uri: {0}", uri); var request = (HttpWebRequest)WebRequest.Create(uri); request.Method = context.RequestMethod; if ((context.FormEncodedParameters != null) && (context.FormEncodedParameters.Count > 0)) { request.ContentType = "application/x-www-form-urlencoded"; using (var writer = new StreamWriter(request.GetRequestStream())) { writer.Write(UriUtility.FormatQueryString(context.FormEncodedParameters)); } } if (UseHeaderForOAuthParameters) { request.Headers[Parameters.OAuth_Authorization_Header] = context.GenerateOAuthParametersForHeader(); } return((HttpWebResponse)request.GetResponse()); }
public HttpWebResponse GetResponse(OAuthContext context, TokenBase accessToken) { SignContext(context, accessToken); Uri uri = context.GenerateUri(); Console.WriteLine("Uri: {0}", uri); var request = (HttpWebRequest) WebRequest.Create(uri); request.Method = context.RequestMethod; if ((context.FormEncodedParameters != null) && (context.FormEncodedParameters.Count > 0)) { request.ContentType = "application/x-www-form-urlencoded"; using (var writer = new StreamWriter(request.GetRequestStream())) { writer.Write(UriUtility.FormatQueryString(context.FormEncodedParameters)); } } if (UseHeaderForOAuthParameters) { request.Headers[Parameters.OAuth_Authorization_Header] = context.GenerateOAuthParametersForHeader(); } return (HttpWebResponse) request.GetResponse(); }
private string CreateAuthorizationHeaderInternal(HttpMethod httpMethod, string url, Dictionary <string, string> parameters, string body) { Encoding enc = Encoding.UTF8; NameValueCollection authorizationHeaderParameters = new NameValueCollection(); authorizationHeaderParameters.Add(Parameters.OAuth_Timestamp, DateTime.Now.Epoch().ToString()); authorizationHeaderParameters.Add(Parameters.OAuth_Version, "1.0"); authorizationHeaderParameters.Add(Parameters.OAuth_Consumer_Key, _consumerKey); authorizationHeaderParameters.Add(Parameters.OAuth_Signature_Method, SignatureMethod.RsaSha1); authorizationHeaderParameters.Add(Parameters.Realm, Realm); var oauthContext = new OAuthContext { AuthorizationHeaderParameters = authorizationHeaderParameters, RawUri = new Uri(url), RequestMethod = httpMethod.Method }; authorizationHeaderParameters.Add(Parameters.OAuth_Nonce, new GuidNonceGenerator().GenerateNonce(oauthContext)); if (parameters != null && parameters.ContainsKey("CallbackUrl")) { authorizationHeaderParameters.Add(Parameters.OAuth_Callback, parameters["CallbackUrl"]); } if (parameters != null && parameters.ContainsKey("Oauth_Verifier")) { authorizationHeaderParameters.Add(Parameters.OAuth_Verifier, parameters["Oauth_Verifier"]); } if (parameters != null && parameters.ContainsKey("Token")) { authorizationHeaderParameters.Add(Parameters.OAuth_Token, parameters["Token"]); } if (body != null) { var rawContent = enc.GetBytes(body); oauthContext.Realm = null; oauthContext.RawContent = rawContent; authorizationHeaderParameters.Add(Parameters.OAuth_Body_Hash, oauthContext.GenerateBodyHash()); } oauthContext.AuthorizationHeaderParameters = authorizationHeaderParameters; var privateKey = GetCertificate(_certThumbprint).PrivateKey; // Set the signature base string so that it's viewable by the // caller upon the return of the response. var signatureBaseString = oauthContext.GenerateSignatureBase(); var signer = new RsaSha1SignatureImplementation(); signer.SignContext(oauthContext, new SigningContext { Algorithm = privateKey, SignatureBase = signatureBaseString }); authorizationHeaderParameters.Add(Parameters.OAuth_Signature, oauthContext.Signature); oauthContext.AuthorizationHeaderParameters = authorizationHeaderParameters; var authHeader = oauthContext.GenerateOAuthParametersForHeader(); return(authHeader); }