Exemplo n.º 1
0
        /// <summary>
        /// Sorts a <see cref="WebParameterCollection" /> by name, and then value if equal.
        /// </summary>
        /// <param name="parameters">
        /// A collection of parameters to sort
        /// </param>
        /// <returns>
        /// A sorted parameter collection
        /// </returns>
        public static WebParameterCollection SortParametersExcludingSignature(WebParameterCollection parameters)
        {
            var copy       = new WebParameterCollection(parameters);
            var exclusions = copy.Where(n => EqualsIgnoreCase(n.Name, "oauth_signature"));

#pragma warning disable IDE0058 // Expression value is never used
            copy.RemoveAll(exclusions);
#pragma warning restore IDE0058 // Expression value is never used

            foreach (var parameter in copy)
            {
                parameter.Value = UrlEncodeStrict(parameter.Value);
            }

            copy.Sort((x, y) => x.Name.Equals(y.Name) ? x.Value.CompareTo(y.Value) : x.Name.CompareTo(y.Name));
            return(copy);
        }
Exemplo n.º 2
0
        private string WriteAuthorizationHeader(WebParameterCollection parameters)
        {
            var sb = new StringBuilder("OAuth ");

            if (!string.IsNullOrWhiteSpace(this.Realm))
            {
#pragma warning disable IDE0058 // Expression value is never used
                sb.AppendFormat("realm=\"{0}\",", OAuthTools.UrlEncodeRelaxed(this.Realm));
#pragma warning restore IDE0058 // Expression value is never used
            }

            parameters.Sort((l, r) => l.Name.CompareTo(r.Name));

            if (this.Type == OAuthRequestType.ProtectedResource)
            {
                foreach (var parameter in parameters.Where(parameter =>
                                                           !string.IsNullOrWhiteSpace(parameter.Name) &&
                                                           !string.IsNullOrWhiteSpace(parameter.Value) &&
                                                           (parameter.Name.StartsWith("oauth_") || parameter.Name.StartsWith("x_auth_")) || parameter.Name == "oauth_token" && parameter.Value != null))
                {
#pragma warning disable IDE0058 // Expression value is never used
                    sb.AppendFormat("{0}=\"{1}\",", parameter.Name, parameter.Value);
#pragma warning restore IDE0058 // Expression value is never used
                }
            }
            else
            {
                foreach (var parameter in parameters.Where(parameter =>
                                                           !string.IsNullOrWhiteSpace(parameter.Name) &&
                                                           !string.IsNullOrWhiteSpace(parameter.Value) &&
                                                           (parameter.Name.StartsWith("oauth_") || parameter.Name.StartsWith("x_auth_"))))
                {
#pragma warning disable IDE0058 // Expression value is never used
                    sb.AppendFormat("{0}=\"{1}\",", parameter.Name, parameter.Value);
#pragma warning restore IDE0058 // Expression value is never used
                }
            }

#pragma warning disable IDE0058 // Expression value is never used
            sb.Remove(sb.Length - 1, 1);
#pragma warning restore IDE0058 // Expression value is never used

            var authorization = sb.ToString();
            return(authorization);
        }
Exemplo n.º 3
0
        private static string WriteAuthorizationQuery(WebParameterCollection parameters)
        {
            var sb = new StringBuilder();

            parameters.Sort((l, r) => l.Name.CompareTo(r.Name));

            var count = 0;

            foreach (var parameter in parameters.Where(parameter =>
                                                       !string.IsNullOrWhiteSpace(parameter.Name) &&
                                                       !string.IsNullOrWhiteSpace(parameter.Value) &&
                                                       (parameter.Name.StartsWith("oauth_") || parameter.Name.StartsWith("x_auth_"))))
            {
                count++;
                var format = count < parameters.Count ? "{0}={1}&" : "{0}={1}";

#pragma warning disable IDE0058 // Expression value is never used
                sb.AppendFormat(format, parameter.Name, parameter.Value);
#pragma warning restore IDE0058 // Expression value is never used
            }

            var authorization = sb.ToString();
            return(authorization);
        }