summaryrefslogtreecommitdiffstats
path: root/samples/OAuthConsumerWpf/MainWindow.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'samples/OAuthConsumerWpf/MainWindow.xaml.cs')
-rw-r--r--samples/OAuthConsumerWpf/MainWindow.xaml.cs79
1 files changed, 25 insertions, 54 deletions
diff --git a/samples/OAuthConsumerWpf/MainWindow.xaml.cs b/samples/OAuthConsumerWpf/MainWindow.xaml.cs
index 1e1f1ab..a2cdfe9 100644
--- a/samples/OAuthConsumerWpf/MainWindow.xaml.cs
+++ b/samples/OAuthConsumerWpf/MainWindow.xaml.cs
@@ -28,9 +28,8 @@
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
- private InMemoryTokenManager googleTokenManager = new InMemoryTokenManager();
- private DesktopConsumer google;
- private string googleAccessToken;
+ private GoogleConsumer google;
+ private DotNetOpenAuth.OAuth.AccessToken googleAccessToken;
private UserAgentClient wcf;
private IAuthorizationState wcfAccessToken;
@@ -42,17 +41,12 @@
}
private void InitializeGoogleConsumer() {
- this.googleTokenManager.ConsumerKey = ConfigurationManager.AppSettings["googleConsumerKey"];
- this.googleTokenManager.ConsumerSecret = ConfigurationManager.AppSettings["googleConsumerSecret"];
-
string pfxFile = ConfigurationManager.AppSettings["googleConsumerCertificateFile"];
- if (string.IsNullOrEmpty(pfxFile)) {
- this.google = new DesktopConsumer(GoogleConsumer.ServiceDescription, this.googleTokenManager);
- } else {
+ this.google = new GoogleConsumer();
+ if (!string.IsNullOrEmpty(pfxFile)) {
string pfxPassword = ConfigurationManager.AppSettings["googleConsumerCertificatePassword"];
var signingCertificate = new X509Certificate2(pfxFile, pfxPassword);
- var service = GoogleConsumer.CreateRsaSha1ServiceDescription(signingCertificate);
- this.google = new DesktopConsumer(service, this.googleTokenManager);
+ this.google.ConsumerCertificate = signingCertificate;
}
}
@@ -65,7 +59,7 @@
}
private async void beginAuthorizationButton_Click(object sender, RoutedEventArgs e) {
- if (string.IsNullOrEmpty(this.googleTokenManager.ConsumerKey)) {
+ if (string.IsNullOrEmpty(this.google.ConsumerKey)) {
MessageBox.Show(this, "You must modify the App.config or OAuthConsumerWpf.exe.config file for this application to include your Google OAuth consumer key first.", "Configuration required", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
@@ -73,15 +67,13 @@
var auth = new Authorize(
this.google,
consumer =>
- GoogleConsumer.RequestAuthorizationAsync(
- consumer,
- GoogleConsumer.Applications.Contacts | GoogleConsumer.Applications.Blogger));
+ ((GoogleConsumer)consumer).RequestUserAuthorizationAsync(GoogleConsumer.Applications.Contacts | GoogleConsumer.Applications.Blogger));
bool? result = auth.ShowDialog();
if (result.HasValue && result.Value) {
this.googleAccessToken = auth.AccessToken;
this.postButton.IsEnabled = true;
- XDocument contactsDocument = await GoogleConsumer.GetContactsAsync(this.google, this.googleAccessToken);
+ XDocument contactsDocument = await this.google.GetContactsAsync(this.googleAccessToken);
var contacts = from entry in contactsDocument.Root.Elements(XName.Get("entry", "http://www.w3.org/2005/Atom"))
select new { Name = entry.Element(XName.Get("title", "http://www.w3.org/2005/Atom")).Value, Email = entry.Element(XName.Get("email", "http://schemas.google.com/g/2005")).Attribute("address").Value };
this.contactsGrid.Children.Clear();
@@ -100,7 +92,7 @@
private async void postButton_Click(object sender, RoutedEventArgs e) {
XElement postBodyXml = XElement.Parse(this.postBodyBox.Text);
- await GoogleConsumer.PostBlogEntryAsync(this.google, this.googleAccessToken, this.blogUrlBox.Text, this.postTitleBox.Text, postBodyXml, CancellationToken.None);
+ await this.google.PostBlogEntryAsync(this.googleAccessToken, this.blogUrlBox.Text, this.postTitleBox.Text, postBodyXml);
}
private async void beginWcfAuthorizationButton_Click(object sender, RoutedEventArgs e) {
@@ -136,48 +128,27 @@
private async void beginButton_Click(object sender, RoutedEventArgs e) {
try {
- var service = new ServiceProviderDescription {
- RequestTokenEndpoint =
- new MessageReceivingEndpoint(
- this.requestTokenUrlBox.Text,
- this.requestTokenHttpMethod.SelectedIndex == 0 ? HttpDeliveryMethods.GetRequest : HttpDeliveryMethods.PostRequest),
- UserAuthorizationEndpoint = new MessageReceivingEndpoint(this.authorizeUrlBox.Text, HttpDeliveryMethods.GetRequest),
- AccessTokenEndpoint =
- new MessageReceivingEndpoint(
- this.accessTokenUrlBox.Text,
- this.accessTokenHttpMethod.SelectedIndex == 0 ? HttpDeliveryMethods.GetRequest : HttpDeliveryMethods.PostRequest),
- TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() },
- ProtocolVersion = this.oauthVersion.SelectedIndex == 0 ? ProtocolVersion.V10 : ProtocolVersion.V10a,
- };
- var tokenManager = new InMemoryTokenManager();
- tokenManager.ConsumerKey = this.consumerKeyBox.Text;
- tokenManager.ConsumerSecret = this.consumerSecretBox.Text;
-
- var consumer = new DesktopConsumer(service, tokenManager);
- string accessToken;
- if (service.ProtocolVersion == ProtocolVersion.V10) {
- var tuple = await consumer.RequestUserAuthorizationAsync(null, null);
- Uri authorizeUrl = tuple.Item1;
- string requestToken = tuple.Item2;
- Process.Start(authorizeUrl.AbsoluteUri);
- MessageBox.Show(this, "Click OK when you've authorized the app.");
- var authorizationResponse = await consumer.ProcessUserAuthorizationAsync(requestToken, null);
- accessToken = authorizationResponse.AccessToken;
+ var service = new ServiceProviderDescription(
+ this.requestTokenUrlBox.Text,
+ this.authorizeUrlBox.Text,
+ this.accessTokenUrlBox.Text);
+
+ var consumer = new Consumer(this.consumerKeyBox.Text, this.consumerSecretBox.Text, service, new MemoryTemporaryCredentialStorage());
+ DotNetOpenAuth.OAuth.AccessToken accessToken;
+ var authorizePopup = new Authorize(consumer, c => c.RequestUserAuthorizationAsync(null, null));
+ authorizePopup.Owner = this;
+ bool? result = authorizePopup.ShowDialog();
+ if (result.HasValue && result.Value) {
+ accessToken = authorizePopup.AccessToken;
} else {
- var authorizePopup = new Authorize(consumer, c => c.RequestUserAuthorizationAsync(null, null));
- authorizePopup.Owner = this;
- bool? result = authorizePopup.ShowDialog();
- if (result.HasValue && result.Value) {
- accessToken = authorizePopup.AccessToken;
- } else {
- return;
- }
+ return;
}
+
HttpMethod resourceHttpMethod = this.resourceHttpMethodList.SelectedIndex < 2 ? HttpMethod.Get : HttpMethod.Post;
using (var handler = consumer.CreateMessageHandler(accessToken)) {
handler.Location = this.resourceHttpMethodList.SelectedIndex == 1
- ? OAuth1HttpMessageHandlerBase.OAuthParametersLocation.AuthorizationHttpHeader
- : OAuth1HttpMessageHandlerBase.OAuthParametersLocation.QueryString;
+ ? OAuth1HttpMessageHandlerBase.OAuthParametersLocation.AuthorizationHttpHeader
+ : OAuth1HttpMessageHandlerBase.OAuthParametersLocation.QueryString;
using (var httpClient = consumer.CreateHttpClient(handler)) {
var request = new HttpRequestMessage(resourceHttpMethod, this.resourceUrlBox.Text);
using (var resourceResponse = await httpClient.SendAsync(request)) {