コード例 #1
0
 public void AccessProtectedResource()
 {
     OAuthConsumer consumer = CreateConsumer(SignatureMethod.RsaSha1);
     var contextFactory = new OAuthContextFactory();
     OAuthContext context = contextFactory.FromUri("GET", new Uri("http://localhost/protected.rails"));
     consumer.SignContext(context,
                          new TokenBase {ConsumerKey = "key", Token = "accesskey", TokenSecret = "accesssecret"});
     AccessOutcome outcome = provider.VerifyProtectedResourceRequest(context);
     Assert.IsTrue(outcome.Granted, outcome.AdditionalInfo);
     Assert.IsNotNull(outcome.AccessToken);
 }
コード例 #2
0
        public void AccessProtectedResource()
        {
            OAuthConsumer consumer       = CreateConsumer(SignatureMethod.RsaSha1);
            var           contextFactory = new OAuthContextFactory();
            OAuthContext  context        = contextFactory.FromUri("GET", new Uri("http://localhost/protected.rails"));

            consumer.SignContext(context,
                                 new TokenBase {
                ConsumerKey = "key", Token = "accesskey", TokenSecret = "accesssecret"
            });
            AccessOutcome outcome = provider.VerifyProtectedResourceRequest(context);

            Assert.IsTrue(outcome.Granted, outcome.AdditionalInfo);
            Assert.IsNotNull(outcome.AccessToken);
        }
コード例 #3
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);
        }
コード例 #4
0
        public void MakeAuthenticatedCallForTokenRsaSha1WithPost()
        {
            var accessToken = new TokenBase {ConsumerKey = "key", Token = "accesskey", TokenSecret = "accesssecret"};
            OAuthConsumer consumer = CreateConsumer(SignatureMethod.RsaSha1);

            var factory = new OAuthContextFactory();
            OAuthContext context = factory.FromUri("POST", new Uri("http://term.ie/oauth/example/echo_api.php"));
            context.FormEncodedParameters.Add("success", "true");

            HttpWebResponse response = consumer.GetResponse(context, accessToken);

            using (var reader = new StreamReader(response.GetResponseStream()))
            {
                string contents = reader.ReadToEnd();
                Assert.AreEqual("success=true", contents);
            }
        }
コード例 #5
0
        private string CreateApiResourceRequest(IOAuthConsumer consumer, string relativePath)
        {
            // to request a protected resource via GET we:

            // 1. Construct the uri we want to access
            // 2. create an "OAuthContext" representing the request.
            // 3. Sign the context using our OAuth consumer implementation (calculates and sets the signature etc.)
            // 4. Generate a Uri from the OAuthContext context and return it.


            var absoloutePath = new Uri(Request.Uri, relativePath);

            var factory = new OAuthContextFactory();

            OAuthContext context = factory.FromUri("GET", absoloutePath);

            consumer.SignContext(context, _testAccessToekn);

            return(context.GenerateUrl());
        }
コード例 #6
0
        public void MakeAuthenticatedCallForTokenRsaSha1WithPost()
        {
            var accessToken = new TokenBase {
                ConsumerKey = "key", Token = "accesskey", TokenSecret = "accesssecret"
            };
            OAuthConsumer consumer = CreateConsumer(SignatureMethod.RsaSha1);

            var          factory = new OAuthContextFactory();
            OAuthContext context = factory.FromUri("POST", new Uri("http://term.ie/oauth/example/echo_api.php"));

            context.FormEncodedParameters.Add("success", "true");

            HttpWebResponse response = consumer.GetResponse(context, accessToken);

            using (var reader = new StreamReader(response.GetResponseStream()))
            {
                string contents = reader.ReadToEnd();
                Assert.AreEqual("success=true", contents);
            }
        }
コード例 #7
0
        private string CreateApiResourceRequest(IOAuthConsumer consumer, string relativePath)
        {
            // to request a protected resource via GET we:

            // 1. Construct the uri we want to access
            // 2. create an "OAuthContext" representing the request.
            // 3. Sign the context using our OAuth consumer implementation (calculates and sets the signature etc.)
            // 4. Generate a Uri from the OAuthContext context and return it.

            
            var absoloutePath = new Uri(Request.Uri, relativePath);

            var factory = new OAuthContextFactory();

            OAuthContext context = factory.FromUri("GET", absoloutePath);

            consumer.SignContext(context, _testAccessToekn);

            return context.GenerateUrl();
        }
コード例 #8
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;
        }