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()); }
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(); }
/*[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()); }
/*[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()); }
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); }