Exemplo n.º 1
0
        public void Sign(Uri requestUri, string httpMethod, IConsumer consumer, IToken token, ISignProvider signingProvider)
        {
            if (token != null)
            {
                Token = token.Token;
            }

            OAuthParameters signingParameters = Clone();
            var             signingUri        = new UriBuilder(requestUri);

            // Normalize the request uri for signing
            if (!string.IsNullOrEmpty(requestUri.Query))
            {
                // TODO: Will the parameters necessarily be Rfc3698 encoded here? If not, then Rfc3968.SplitAndDecode will throw FormatException
                signingParameters.AdditionalParameters.Add(Rfc3986.SplitAndDecode(requestUri.Query.Substring(1)));
                signingUri.Query = null;
            }

            if (signingProvider == null)
            {
                // There is no signing provider for this signature method
                throw new OAuthRequestException(null, OAuthProblemTypes.SignatureMethodRejected);
            }

            // Compute the signature
            Signature = signingProvider.ComputeSignature(
                Security.Signature.Create(httpMethod, signingUri.Uri, signingParameters), consumer.Secret,
                (token != null && token.Secret != null) ? token.Secret : null);
        }
Exemplo n.º 2
0
        public void Sign(Uri requestUri, string httpMethod, IConsumer consumer, IToken token, ISignProvider signingProvider)
        {
            if (token != null)
                Token = token.Token;

            OAuthParameters signingParameters = Clone();
            var signingUri = new UriBuilder(requestUri);

            // Normalize the request uri for signing
            if (!string.IsNullOrEmpty(requestUri.Query)) {
                // TODO: Will the parameters necessarily be Rfc3698 encoded here? If not, then Rfc3968.SplitAndDecode will throw FormatException
                signingParameters.AdditionalParameters.Add(Rfc3986.SplitAndDecode(requestUri.Query.Substring(1)));
                signingUri.Query = null;
            }

            if (signingProvider == null)
                // There is no signing provider for this signature method
                throw new OAuthRequestException(null, OAuthProblemTypes.SignatureMethodRejected);

            // Compute the signature
            Signature = signingProvider.ComputeSignature(
                Security.Signature.Create(httpMethod, signingUri.Uri, signingParameters), consumer.Secret,
                (token != null && token.Secret != null) ? token.Secret : null);
        }