diff options
author | David Christiansen <coding@davedoes.net> | 2012-06-30 16:06:46 -0700 |
---|---|---|
committer | David Christiansen <coding@davedoes.net> | 2012-06-30 16:06:46 -0700 |
commit | 06401bb049dc29cf4446eb61a4a72317a644ce54 (patch) | |
tree | 7c475929350b31b4b848a1faa57bd0d7cbbf512c /src/OAuth/OAuthConsumerWpf/Authorize.xaml.cs | |
parent | 02ce959db12fec57e846e5ebfa662cd0327ce69c (diff) | |
parent | 3286c37f3a967e7d142534df84604a66be9d176c (diff) | |
download | DotNetOpenAuth.Samples-06401bb049dc29cf4446eb61a4a72317a644ce54.zip DotNetOpenAuth.Samples-06401bb049dc29cf4446eb61a4a72317a644ce54.tar.gz DotNetOpenAuth.Samples-06401bb049dc29cf4446eb61a4a72317a644ce54.tar.bz2 |
Merge pull request #1 from DavidChristiansen/master
Kachow!
Diffstat (limited to 'src/OAuth/OAuthConsumerWpf/Authorize.xaml.cs')
-rw-r--r-- | src/OAuth/OAuthConsumerWpf/Authorize.xaml.cs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/OAuth/OAuthConsumerWpf/Authorize.xaml.cs b/src/OAuth/OAuthConsumerWpf/Authorize.xaml.cs new file mode 100644 index 0000000..4ed1932 --- /dev/null +++ b/src/OAuth/OAuthConsumerWpf/Authorize.xaml.cs @@ -0,0 +1,58 @@ +namespace DotNetOpenAuth.Samples.OAuthConsumerWpf { + using System; + using System.Collections.Generic; + using System.Linq; + 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.Shapes; + using System.Xml.Linq; + using DotNetOpenAuth.ApplicationBlock; + using DotNetOpenAuth.OAuth; + + /// <summary> + /// Interaction logic for Authorize.xaml + /// </summary> + public partial class Authorize : Window { + private DesktopConsumer consumer; + private string requestToken; + + internal Authorize(DesktopConsumer consumer, FetchUri fetchUriCallback) { + this.InitializeComponent(); + + this.consumer = consumer; + Cursor original = this.Cursor; + this.Cursor = Cursors.Wait; + ThreadPool.QueueUserWorkItem(delegate(object state) { + Uri browserAuthorizationLocation = fetchUriCallback(this.consumer, out this.requestToken); + System.Diagnostics.Process.Start(browserAuthorizationLocation.AbsoluteUri); + this.Dispatcher.BeginInvoke(new Action(() => { + this.Cursor = original; + finishButton.IsEnabled = true; + })); + }); + } + + internal delegate Uri FetchUri(DesktopConsumer consumer, out string requestToken); + + internal string AccessToken { get; set; } + + private void finishButton_Click(object sender, RoutedEventArgs e) { + var grantedAccess = this.consumer.ProcessUserAuthorization(this.requestToken, this.verifierBox.Text); + this.AccessToken = grantedAccess.AccessToken; + DialogResult = true; + Close(); + } + + private void cancelButton_Click(object sender, RoutedEventArgs e) { + DialogResult = false; + Close(); + } + } +} |