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.cs67
1 files changed, 54 insertions, 13 deletions
diff --git a/samples/OAuthConsumerWpf/MainWindow.xaml.cs b/samples/OAuthConsumerWpf/MainWindow.xaml.cs
index 1914621..e62683d 100644
--- a/samples/OAuthConsumerWpf/MainWindow.xaml.cs
+++ b/samples/OAuthConsumerWpf/MainWindow.xaml.cs
@@ -3,32 +3,27 @@
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
+ using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.ServiceModel;
using System.ServiceModel.Channels;
- using System.Text;
- using System.Threading;
using System.Windows;
using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using System.Xml;
using System.Xml.Linq;
- using System.Xml.XPath;
- using DotNetOpenAuth;
+
using DotNetOpenAuth.ApplicationBlock;
using DotNetOpenAuth.Messaging;
using DotNetOpenAuth.OAuth;
using DotNetOpenAuth.OAuth.ChannelElements;
using DotNetOpenAuth.Samples.OAuthConsumerWpf.WcfSampleService;
+ using OAuth2;
+
+ using OAuth2 = DotNetOpenAuth.OAuth2;
+ using ProtocolVersion = DotNetOpenAuth.OAuth.ProtocolVersion;
+
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
@@ -86,7 +81,7 @@
return;
}
- Authorize auth = new Authorize(
+ var auth = new Authorize(
this.google,
(DesktopConsumer consumer, out string requestToken) =>
GoogleConsumer.RequestAuthorization(
@@ -198,5 +193,51 @@
MessageBox.Show(this, ex.Message);
}
}
+
+ private void oauth2BeginButton_Click(object sender, RoutedEventArgs e) {
+ var authServer = new DotNetOpenAuth.OAuth2.AuthorizationServerDescription {
+ AuthorizationEndpoint = new Uri(oauth2AuthorizationUrlBox.Text),
+ };
+ if (oauth2TokenEndpointBox.Text.Length > 0) {
+ authServer.TokenEndpoint = new Uri(oauth2TokenEndpointBox.Text);
+ }
+
+ try {
+ var client = new OAuth2.UserAgentClient(authServer, oauth2ClientIdentifierBox.Text, oauth2ClientSecretBox.Text);
+
+ var authorization = new AuthorizationState(OAuthUtilities.SplitScopes(oauth2ScopeBox.Text));
+ var authorizePopup = new Authorize2(client, authorization);
+ authorizePopup.Owner = this;
+ bool? result = authorizePopup.ShowDialog();
+ if (result.HasValue && result.Value) {
+ var requestUri = new UriBuilder(oauth2ResourceUrlBox.Text);
+ if (oauth2ResourceHttpMethodList.SelectedIndex > 0) {
+ requestUri.AppendQueryArgument("access_token", authorization.AccessToken);
+ }
+
+ var request = (HttpWebRequest)WebRequest.Create(requestUri.Uri);
+ request.Method = oauth2ResourceHttpMethodList.SelectedIndex < 2 ? "GET" : "POST";
+ if (oauth2ResourceHttpMethodList.SelectedIndex == 0) {
+ client.AuthorizeRequest(request, authorization);
+ }
+
+ using (var resourceResponse = request.GetResponse()) {
+ using (var responseStream = new StreamReader(resourceResponse.GetResponseStream())) {
+ oauth2ResultsBox.Text = responseStream.ReadToEnd();
+ }
+ }
+ } else {
+ return;
+ }
+ } catch (Messaging.ProtocolException ex) {
+ MessageBox.Show(this, ex.Message);
+ } catch (WebException ex) {
+ string responseText = string.Empty;
+ using (var responseReader = new StreamReader(ex.Response.GetResponseStream())) {
+ responseText = responseReader.ReadToEnd();
+ }
+ MessageBox.Show(this, ex.Message + " " + responseText);
+ }
+ }
}
}