コード例 #1
0
        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());
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        /*[Test]
        public void Go()
        {
            var factory = new OAuthContextFactory();
            var context = factory.FromUri("GET", new Uri("http://localhost.:888/api/contacts/list.rails"));
            
            OAuthConsumer consumer = new OAuthConsumer("http://localhost/rt", "http://localhost/at");
            consumer.SignatureMethod = SignatureMethod.RsaSha1;
            consumer.ConsumerKey = "key";
            consumer.ConsumerSecret = "secret";
            consumer.Key = TestCertificates.OAuthTestCertificate().PrivateKey;
            consumer.SignContext(context, new TokenBase { ConsumerKey="key", Token = "accesskey", TokenSecret = "accesssecret" });
            
            OAuthContext context2 = factory.FromUri("GET", context.GenerateUri());

            Assert.AreEqual(context.Signature, context2.Signature);

            OAuthProvider provider = new OAuthProvider();
            provider.TestAlgorithm = TestCertificates.OAuthTestCertificate().PublicKey.Key;
            var outcome = provider.VerifyProtectedResourceRequest(context2);

            Assert.IsTrue(outcome.Granted, outcome.AdditionalInfo);            
        }*/

        public void Test()
        {
            string signature = "RJfuUrAU7qFkBfk9nR02qw9YsdlJzaT2tYINzZ8b+H5dQLfcZqUjmgEjOvfqBo6HcDg3tFKcZgxsUF+zw5Tv4KWTuhPaAl7SFOmpvVzAA5Pn0pKSkivEl6oAvKQW7JP00/KQoR9gD7HrspFvzYsoqv3DlfGgLF7VYx62JzUPYr4=";

            OAuthContext context = new OAuthContext() { RequestMethod = "GET",  RawUri = new Uri("http://localhost/service") };

            context.Signature = signature;

            Console.WriteLine(context.GenerateUri().ToString());
        }
コード例 #4
0
        /*[Test]
         * public void Go()
         * {
         *  var factory = new OAuthContextFactory();
         *  var context = factory.FromUri("GET", new Uri("http://localhost.:888/api/contacts/list.rails"));
         *
         *  OAuthConsumer consumer = new OAuthConsumer("http://localhost/rt", "http://localhost/at");
         *  consumer.SignatureMethod = SignatureMethod.RsaSha1;
         *  consumer.ConsumerKey = "key";
         *  consumer.ConsumerSecret = "secret";
         *  consumer.Key = TestCertificates.OAuthTestCertificate().PrivateKey;
         *  consumer.SignContext(context, new TokenBase { ConsumerKey="key", Token = "accesskey", TokenSecret = "accesssecret" });
         *
         *  OAuthContext context2 = factory.FromUri("GET", context.GenerateUri());
         *
         *  Assert.AreEqual(context.Signature, context2.Signature);
         *
         *  OAuthProvider provider = new OAuthProvider();
         *  provider.TestAlgorithm = TestCertificates.OAuthTestCertificate().PublicKey.Key;
         *  var outcome = provider.VerifyProtectedResourceRequest(context2);
         *
         *  Assert.IsTrue(outcome.Granted, outcome.AdditionalInfo);
         * }*/

        public void Test()
        {
            string signature = "RJfuUrAU7qFkBfk9nR02qw9YsdlJzaT2tYINzZ8b+H5dQLfcZqUjmgEjOvfqBo6HcDg3tFKcZgxsUF+zw5Tv4KWTuhPaAl7SFOmpvVzAA5Pn0pKSkivEl6oAvKQW7JP00/KQoR9gD7HrspFvzYsoqv3DlfGgLF7VYx62JzUPYr4=";

            OAuthContext context = new OAuthContext()
            {
                RequestMethod = "GET", RawUri = new Uri("http://localhost/service")
            };

            context.Signature = signature;

            Console.WriteLine(context.GenerateUri().ToString());
        }
コード例 #5
0
        public OAuthContext BuildExchangeRequestTokenForAccessTokenContext(TokenBase requestToken,
                                                                           NameValueCollection additionalQueryParameters)
        {
            EnsureStateIsValid();

            if (requestToken.ConsumerKey != ConsumerKey)
            {
                throw Error.SuppliedTokenWasNotIssuedToThisConsumer(ConsumerKey, requestToken.ConsumerKey);
            }

            var auth = new NonceGenerator();

            var          factory = new OAuthContextFactory();
            var          signer  = new OAuthContextSigner();
            OAuthContext context = factory.FromUri("GET", AccessTokenUri);

            if (additionalQueryParameters != null)
            {
                context.QueryParameters.Add(additionalQueryParameters);
            }

            context.ConsumerKey     = ConsumerKey;
            context.Token           = requestToken.Token;
            context.TokenSecret     = requestToken.TokenSecret;
            context.RequestMethod   = "GET";
            context.SignatureMethod = SignatureMethod;
            context.Timestamp       = DateTime.Now.EpocString();
            context.Nonce           = auth.GenerateNonce();
            context.Version         = "1.0";

            string signatureBase = context.GenerateSignatureBase();

            Console.WriteLine("signature_base: {0}", signatureBase);

            signer.SignContext(context,
                               new SigningContext
            {
                Algorithm = Key, SignatureBase = signatureBase, ConsumerSecret = ConsumerSecret
            });

            Console.WriteLine("oauth_singature: {0}", context.Signature);

            Uri uri = context.GenerateUri();

            Console.WriteLine("Uri: {0}", uri);

            return(context);
        }