private void createSignature() { var method = ContainedRequest.Method; var baseUrl = String.Format("{0}://{1}{2}", ContainedRequest.RequestUri.Scheme, ContainedRequest.RequestUri.Host, ContainedRequest.RequestUri.AbsolutePath); var parameters = new SortedDictionary <string, string>(AuthorizationHeader); var queryParams = UrlHelper.ParseQueryString(ContainedRequest.RequestUri.Query); foreach (var pair in queryParams) { parameters.Add(pair.Key, pair.Value); } if (method.Equals("POST") && !String.IsNullOrEmpty(ContainedRequest.ContentType) && ContainedRequest.ContentType.Equals(FormUrlEncodedMimeType)) { if (!String.IsNullOrEmpty(PostParameters)) { var postParams = UrlHelper.ParseQueryString(PostParameters); foreach (var pair in postParams) { parameters.Add(pair.Key, pair.Value); } } } var paramString = new StringBuilder(); foreach (var pair in parameters) { if (paramString.Length > 0) { paramString.Append("&"); } paramString.AppendFormat("{0}={1}", UrlHelper.Encode(pair.Key), UrlHelper.Encode(pair.Value)); } // percent encode everything var encodedParams = String.Format("{0}&{1}&{2}", ContainedRequest.Method.ToUpper(), UrlHelper.Encode(baseUrl), UrlHelper.Encode(paramString.ToString())); // key var key = String.Format("{0}&{1}", UrlHelper.Encode(RequestTokens.ConsumerSecret), UrlHelper.Encode(RequestTokens.AccessTokenSecret)); // signature time! string signature = SignatureMethod.CreateSignature(this.SigningMethod, encodedParams.ToString(), key); AuthorizationHeader.Add("oauth_signature", signature); }