summaryrefslogtreecommitdiffstats
path: root/samples/OAuthConsumer
diff options
context:
space:
mode:
Diffstat (limited to 'samples/OAuthConsumer')
-rw-r--r--samples/OAuthConsumer/GoogleAddressBook.aspx.cs37
-rw-r--r--samples/OAuthConsumer/GoogleApps2Legged.aspx.cs22
-rw-r--r--samples/OAuthConsumer/OAuthConsumer.csproj3
-rw-r--r--samples/OAuthConsumer/SampleWcf.aspx.cs50
-rw-r--r--samples/OAuthConsumer/SignInWithTwitter.aspx.cs7
-rw-r--r--samples/OAuthConsumer/Twitter.aspx.cs47
-rw-r--r--samples/OAuthConsumer/Web.config4
-rw-r--r--samples/OAuthConsumer/Yammer.aspx.cs43
8 files changed, 64 insertions, 149 deletions
diff --git a/samples/OAuthConsumer/GoogleAddressBook.aspx.cs b/samples/OAuthConsumer/GoogleAddressBook.aspx.cs
index 8a2a816..ad25536 100644
--- a/samples/OAuthConsumer/GoogleAddressBook.aspx.cs
+++ b/samples/OAuthConsumer/GoogleAddressBook.aspx.cs
@@ -2,6 +2,7 @@
using System;
using System.Configuration;
using System.Linq;
+ using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
@@ -14,50 +15,34 @@
/// A page to demonstrate downloading a Gmail address book using OAuth.
/// </summary>
public partial class GoogleAddressBook : System.Web.UI.Page {
- private string AccessToken {
- get { return (string)Session["GoogleAccessToken"]; }
+ private AccessToken AccessToken {
+ get { return (AccessToken)Session["GoogleAccessToken"]; }
set { Session["GoogleAccessToken"] = value; }
}
- private InMemoryTokenManager TokenManager {
- get {
- var tokenManager = (InMemoryTokenManager)Application["GoogleTokenManager"];
- if (tokenManager == null) {
- string consumerKey = ConfigurationManager.AppSettings["googleConsumerKey"];
- string consumerSecret = ConfigurationManager.AppSettings["googleConsumerSecret"];
- if (!string.IsNullOrEmpty(consumerKey)) {
- tokenManager = new InMemoryTokenManager(consumerKey, consumerSecret);
- Application["GoogleTokenManager"] = tokenManager;
- }
- }
-
- return tokenManager;
- }
- }
-
protected async void Page_Load(object sender, EventArgs e) {
- if (this.TokenManager != null) {
+ var google = new GoogleConsumer();
+ if (google.ConsumerKey != null) {
this.MultiView1.ActiveViewIndex = 1;
if (!IsPostBack) {
- var google = new WebConsumer(GoogleConsumer.ServiceDescription, this.TokenManager);
-
// Is Google calling back with authorization?
- var accessTokenResponse = await google.ProcessUserAuthorizationAsync(new HttpRequestWrapper(Request), Response.ClientDisconnectedToken);
+ var accessTokenResponse = await google.ProcessUserAuthorizationAsync(this.Request.Url);
if (accessTokenResponse != null) {
this.AccessToken = accessTokenResponse.AccessToken;
- } else if (this.AccessToken == null) {
+ } else if (this.AccessToken.Token == null) {
// If we don't yet have access, immediately request it.
- await GoogleConsumer.RequestAuthorizationAsync(google, GoogleConsumer.Applications.Contacts);
+ Uri redirectUri = await google.RequestUserAuthorizationAsync(GoogleConsumer.Applications.Contacts);
+ this.Response.Redirect(redirectUri.AbsoluteUri);
}
}
}
}
protected async void getAddressBookButton_Click(object sender, EventArgs e) {
- var google = new WebConsumer(GoogleConsumer.ServiceDescription, this.TokenManager);
+ var google = new GoogleConsumer();
- XDocument contactsDocument = await GoogleConsumer.GetContactsAsync(google, this.AccessToken, 5, 1, Response.ClientDisconnectedToken);
+ XDocument contactsDocument = await google.GetContactsAsync(this.AccessToken, 5, 1, Response.ClientDisconnectedToken);
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 };
StringBuilder tableBuilder = new StringBuilder();
diff --git a/samples/OAuthConsumer/GoogleApps2Legged.aspx.cs b/samples/OAuthConsumer/GoogleApps2Legged.aspx.cs
index af490cf..cff24ea 100644
--- a/samples/OAuthConsumer/GoogleApps2Legged.aspx.cs
+++ b/samples/OAuthConsumer/GoogleApps2Legged.aspx.cs
@@ -12,26 +12,10 @@
using DotNetOpenAuth.OAuth.Messages;
public partial class GoogleApps2Legged : System.Web.UI.Page {
- private InMemoryTokenManager TokenManager {
- get {
- var tokenManager = (InMemoryTokenManager)Application["GoogleTokenManager"];
- if (tokenManager == null) {
- string consumerKey = ConfigurationManager.AppSettings["googleConsumerKey"];
- string consumerSecret = ConfigurationManager.AppSettings["googleConsumerSecret"];
- if (!string.IsNullOrEmpty(consumerKey)) {
- tokenManager = new InMemoryTokenManager(consumerKey, consumerSecret);
- Application["GoogleTokenManager"] = tokenManager;
- }
- }
-
- return tokenManager;
- }
- }
-
protected async void Page_Load(object sender, EventArgs e) {
- var google = new WebConsumer(GoogleConsumer.ServiceDescription, this.TokenManager);
- string accessToken = await google.RequestNewClientAccountAsync(cancellationToken: Response.ClientDisconnectedToken);
- using (var httpClient = google.CreateHttpClient(accessToken)) {
+ var google = new GoogleConsumer();
+ var accessToken = await google.RequestNewClientAccountAsync();
+ using (var httpClient = google.CreateHttpClient(accessToken.AccessToken)) {
await httpClient.GetAsync("http://someUri", Response.ClientDisconnectedToken);
}
}
diff --git a/samples/OAuthConsumer/OAuthConsumer.csproj b/samples/OAuthConsumer/OAuthConsumer.csproj
index 12553c3..94bed9c 100644
--- a/samples/OAuthConsumer/OAuthConsumer.csproj
+++ b/samples/OAuthConsumer/OAuthConsumer.csproj
@@ -107,9 +107,6 @@
</None>
</ItemGroup>
<ItemGroup>
- <Compile Include="..\DotNetOpenAuth.ApplicationBlock\InMemoryTokenManager.cs">
- <Link>Code\InMemoryTokenManager.cs</Link>
- </Compile>
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
diff --git a/samples/OAuthConsumer/SampleWcf.aspx.cs b/samples/OAuthConsumer/SampleWcf.aspx.cs
index 9c32f59..4e0d6cd 100644
--- a/samples/OAuthConsumer/SampleWcf.aspx.cs
+++ b/samples/OAuthConsumer/SampleWcf.aspx.cs
@@ -24,9 +24,9 @@
public partial class SampleWcf : System.Web.UI.Page {
protected async void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
- if (Session["WcfTokenManager"] != null) {
- WebConsumer consumer = this.CreateConsumer();
- var accessTokenMessage = await consumer.ProcessUserAuthorizationAsync(new HttpRequestWrapper(Request), Response.ClientDisconnectedToken);
+ var consumer = this.CreateConsumer();
+ if (consumer.ConsumerKey != null) {
+ var accessTokenMessage = await consumer.ProcessUserAuthorizationAsync(this.Request.Url);
if (accessTokenMessage != null) {
Session["WcfAccessToken"] = accessTokenMessage.AccessToken;
this.authorizationLabel.Text = "Authorized! Access token: " + accessTokenMessage.AccessToken;
@@ -36,7 +36,7 @@
}
protected async void getAuthorizationButton_Click(object sender, EventArgs e) {
- WebConsumer consumer = this.CreateConsumer();
+ var consumer = this.CreateConsumer();
UriBuilder callback = new UriBuilder(Request.Url);
callback.Query = null;
string[] scopes = (from item in this.scopeList.Items.OfType<ListItem>()
@@ -44,11 +44,10 @@
select item.Value).ToArray();
string scope = string.Join("|", scopes);
var requestParams = new Dictionary<string, string> {
- { "scope", scope },
- };
- var response = await consumer.PrepareRequestUserAuthorizationAsync(callback.Uri, requestParams, null, Response.ClientDisconnectedToken);
- var responseMessage = await consumer.Channel.PrepareResponseAsync(response, Response.ClientDisconnectedToken);
- await responseMessage.SendAsync(new HttpResponseWrapper(Response), Response.ClientDisconnectedToken);
+ { "scope", scope },
+ };
+ Uri redirectUri = await consumer.RequestUserAuthorizationAsync(callback.Uri, requestParams);
+ this.Response.Redirect(redirectUri.AbsoluteUri);
}
protected async void getNameButton_Click(object sender, EventArgs e) {
@@ -80,16 +79,15 @@
private async Task<T> CallServiceAsync<T>(Func<DataApiClient, T> predicate) {
DataApiClient client = new DataApiClient();
var serviceEndpoint = new MessageReceivingEndpoint(client.Endpoint.Address.Uri, HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.PostRequest);
- var accessToken = Session["WcfAccessToken"] as string;
- if (accessToken == null) {
+ var accessToken = (AccessToken)(Session["WcfAccessToken"] ?? default(AccessToken));
+ if (accessToken.Token == null) {
throw new InvalidOperationException("No access token!");
}
var httpRequest = new HttpRequestMessage(HttpMethod.Post, client.Endpoint.Address.Uri);
- using (WebConsumer consumer = this.CreateConsumer()) {
- using (var handler = consumer.CreateMessageHandler(accessToken)) {
- handler.ApplyAuthorization(httpRequest);
- }
+ var consumer = this.CreateConsumer();
+ using (var handler = consumer.CreateMessageHandler(accessToken)) {
+ handler.ApplyAuthorization(httpRequest);
}
HttpRequestMessageProperty httpDetails = new HttpRequestMessageProperty();
@@ -100,27 +98,17 @@
}
}
- private WebConsumer CreateConsumer() {
+ private Consumer CreateConsumer() {
string consumerKey = "sampleconsumer";
string consumerSecret = "samplesecret";
- var tokenManager = Session["WcfTokenManager"] as InMemoryTokenManager;
- if (tokenManager == null) {
- tokenManager = new InMemoryTokenManager(consumerKey, consumerSecret);
- Session["WcfTokenManager"] = tokenManager;
- }
MessageReceivingEndpoint oauthEndpoint = new MessageReceivingEndpoint(
new Uri("http://localhost:65169/OAuth.ashx"),
HttpDeliveryMethods.PostRequest);
- WebConsumer consumer = new WebConsumer(
- new ServiceProviderDescription {
- RequestTokenEndpoint = oauthEndpoint,
- UserAuthorizationEndpoint = oauthEndpoint,
- AccessTokenEndpoint = oauthEndpoint,
- TamperProtectionElements = new DotNetOpenAuth.Messaging.ITamperProtectionChannelBindingElement[] {
- new HmacSha1SigningBindingElement(),
- },
- },
- tokenManager);
+ var consumer = new Consumer(
+ consumerKey,
+ consumerSecret,
+ new ServiceProviderDescription(oauthEndpoint.Location.AbsoluteUri, oauthEndpoint.Location.AbsoluteUri, oauthEndpoint.Location.AbsoluteUri),
+ new CookieTemporaryCredentialStorage());
return consumer;
}
diff --git a/samples/OAuthConsumer/SignInWithTwitter.aspx.cs b/samples/OAuthConsumer/SignInWithTwitter.aspx.cs
index f90d557..93462d5 100644
--- a/samples/OAuthConsumer/SignInWithTwitter.aspx.cs
+++ b/samples/OAuthConsumer/SignInWithTwitter.aspx.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
+ using System.Net;
using System.Web;
using System.Web.Security;
using System.Web.UI;
@@ -19,7 +20,7 @@
this.MultiView1.ActiveViewIndex = 1;
if (!IsPostBack) {
- var tuple = await TwitterConsumer.TryFinishSignInWithTwitterAsync(Response.ClientDisconnectedToken);
+ var tuple = await TwitterConsumer.TryFinishSignInWithTwitterAsync();
if (tuple != null) {
string screenName = tuple.Item1;
int userId = tuple.Item2;
@@ -35,8 +36,8 @@
}
protected async void signInButton_Click(object sender, ImageClickEventArgs e) {
- var response = await TwitterConsumer.StartSignInWithTwitterAsync(this.forceLoginCheckbox.Checked, Response.ClientDisconnectedToken);
- await response.SendAsync();
+ Uri redirectUri = await TwitterConsumer.StartSignInWithTwitterAsync(this.forceLoginCheckbox.Checked, Response.ClientDisconnectedToken);
+ this.Response.Redirect(redirectUri.AbsoluteUri);
}
}
} \ No newline at end of file
diff --git a/samples/OAuthConsumer/Twitter.aspx.cs b/samples/OAuthConsumer/Twitter.aspx.cs
index 6ff6993..6b298cc 100644
--- a/samples/OAuthConsumer/Twitter.aspx.cs
+++ b/samples/OAuthConsumer/Twitter.aspx.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
+ using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
@@ -14,51 +15,33 @@
using DotNetOpenAuth.OAuth;
public partial class Twitter : System.Web.UI.Page {
- private string AccessToken {
- get { return (string)Session["TwitterAccessToken"]; }
+ private AccessToken AccessToken {
+ get { return (AccessToken)(Session["TwitterAccessToken"] ?? new AccessToken()); }
set { Session["TwitterAccessToken"] = value; }
}
- private InMemoryTokenManager TokenManager {
- get {
- var tokenManager = (InMemoryTokenManager)Application["TwitterTokenManager"];
- if (tokenManager == null) {
- string consumerKey = ConfigurationManager.AppSettings["twitterConsumerKey"];
- string consumerSecret = ConfigurationManager.AppSettings["twitterConsumerSecret"];
- if (!string.IsNullOrEmpty(consumerKey)) {
- tokenManager = new InMemoryTokenManager(consumerKey, consumerSecret);
- Application["TwitterTokenManager"] = tokenManager;
- }
- }
-
- return tokenManager;
- }
- }
-
protected async void Page_Load(object sender, EventArgs e) {
- if (this.TokenManager != null) {
+ var twitter = new TwitterConsumer();
+ if (twitter.ConsumerKey != null) {
this.MultiView1.ActiveViewIndex = 1;
if (!IsPostBack) {
- var twitter = new WebConsumer(TwitterConsumer.ServiceDescription, this.TokenManager);
-
// Is Twitter calling back with authorization?
- var accessTokenResponse = await twitter.ProcessUserAuthorizationAsync(new HttpRequestWrapper(Request), Response.ClientDisconnectedToken);
+ var accessTokenResponse = await twitter.ProcessUserAuthorizationAsync(this.Request.Url);
if (accessTokenResponse != null) {
this.AccessToken = accessTokenResponse.AccessToken;
- } else if (this.AccessToken == null) {
+ } else {
// If we don't yet have access, immediately request it.
- var message = await twitter.PrepareRequestUserAuthorizationAsync(Response.ClientDisconnectedToken);
- var response = await twitter.Channel.PrepareResponseAsync(message, Response.ClientDisconnectedToken);
- await response.SendAsync();
+ Uri redirectUri = await twitter.RequestUserAuthorizationAsync(MessagingUtilities.GetPublicFacingUrl());
+ this.Response.Redirect(redirectUri.AbsoluteUri);
}
}
}
}
protected async void downloadUpdates_Click(object sender, EventArgs e) {
- var twitter = new WebConsumer(TwitterConsumer.ServiceDescription, this.TokenManager);
- var statusesJson = await TwitterConsumer.GetUpdatesAsync(twitter, this.AccessToken, Response.ClientDisconnectedToken);
+ var twitter = new TwitterConsumer();
+ var statusesJson = await twitter.GetUpdatesAsync(this.AccessToken);
StringBuilder tableBuilder = new StringBuilder();
tableBuilder.Append("<table><tr><td>Name</td><td>Update</td></tr>");
@@ -83,13 +66,11 @@
return;
}
- var twitter = new WebConsumer(TwitterConsumer.ServiceDescription, this.TokenManager);
- XDocument imageResult = await TwitterConsumer.UpdateProfileImageAsync(
- twitter,
+ var twitter = new TwitterConsumer();
+ XDocument imageResult = await twitter.UpdateProfileImageAsync(
this.AccessToken,
this.profilePhoto.PostedFile.InputStream,
- this.profilePhoto.PostedFile.ContentType,
- Response.ClientDisconnectedToken);
+ this.profilePhoto.PostedFile.ContentType);
this.photoUploadedLabel.Visible = true;
}
}
diff --git a/samples/OAuthConsumer/Web.config b/samples/OAuthConsumer/Web.config
index 3580fe6..69dab78 100644
--- a/samples/OAuthConsumer/Web.config
+++ b/samples/OAuthConsumer/Web.config
@@ -37,8 +37,8 @@
<!-- Fill in your various consumer keys and secrets here to make the sample work. -->
<!-- You must get these values by signing up with each individual service provider. -->
<!-- Twitter sign-up: https://twitter.com/oauth_clients -->
- <add key="twitterConsumerKey" value="" />
- <add key="twitterConsumerSecret" value="" />
+ <add key="twitterConsumerKey" value="5ZxhT5fqIodtU8fa7mA0w" />
+ <add key="twitterConsumerSecret" value="pZxtR63tLeMc8sd4rOqnZQqQjmfLiUMEWMokYFIjKq4" />
<!-- Google sign-up: https://www.google.com/accounts/ManageDomains -->
<add key="googleConsumerKey" value="anonymous"/>
<add key="googleConsumerSecret" value="anonymous"/>
diff --git a/samples/OAuthConsumer/Yammer.aspx.cs b/samples/OAuthConsumer/Yammer.aspx.cs
index 57169fc..b1031ae 100644
--- a/samples/OAuthConsumer/Yammer.aspx.cs
+++ b/samples/OAuthConsumer/Yammer.aspx.cs
@@ -11,48 +11,27 @@
using DotNetOpenAuth.OAuth;
public partial class Yammer : System.Web.UI.Page {
- private string RequestToken {
- get { return (string)ViewState["YammerRequestToken"]; }
- set { ViewState["YammerRequestToken"] = value; }
- }
-
- private string AccessToken {
- get { return (string)Session["YammerAccessToken"]; }
+ private AccessToken AccessToken {
+ get { return (AccessToken)Session["YammerAccessToken"]; }
set { Session["YammerAccessToken"] = value; }
}
- private InMemoryTokenManager TokenManager {
- get {
- var tokenManager = (InMemoryTokenManager)Application["YammerTokenManager"];
- if (tokenManager == null) {
- string consumerKey = ConfigurationManager.AppSettings["YammerConsumerKey"];
- string consumerSecret = ConfigurationManager.AppSettings["YammerConsumerSecret"];
- if (!string.IsNullOrEmpty(consumerKey)) {
- tokenManager = new InMemoryTokenManager(consumerKey, consumerSecret);
- Application["YammerTokenManager"] = tokenManager;
- }
- }
-
- return tokenManager;
- }
- }
-
protected void Page_Load(object sender, EventArgs e) {
- if (this.TokenManager != null) {
+ var yammer = new YammerConsumer();
+ if (yammer.ConsumerKey != null) {
this.MultiView1.SetActiveView(this.BeginAuthorizationView);
}
}
protected void getYammerMessages_Click(object sender, EventArgs e) {
- var yammer = new WebConsumer(YammerConsumer.ServiceDescription, this.TokenManager);
+ var yammer = new YammerConsumer();
+
+ // TODO: code here
}
protected async void obtainAuthorizationButton_Click(object sender, EventArgs e) {
- var yammer = YammerConsumer.CreateConsumer(this.TokenManager);
- var tuple = await YammerConsumer.PrepareRequestAuthorizationAsync(yammer, Response.ClientDisconnectedToken);
- Uri popupWindowLocation = tuple.Item1;
- string requestToken = tuple.Item2;
- this.RequestToken = requestToken;
+ var yammer = new YammerConsumer();
+ Uri popupWindowLocation = await yammer.RequestUserAuthorizationAsync(MessagingUtilities.GetPublicFacingUrl());
string javascript = "window.open('" + popupWindowLocation.AbsoluteUri + "');";
this.Page.ClientScript.RegisterStartupScript(GetType(), "YammerPopup", javascript, true);
this.MultiView1.SetActiveView(this.CompleteAuthorizationView);
@@ -63,8 +42,8 @@
return;
}
- var yammer = YammerConsumer.CreateConsumer(this.TokenManager);
- var authorizationResponse = await YammerConsumer.CompleteAuthorizationAsync(yammer, this.RequestToken, this.yammerUserCode.Text, Response.ClientDisconnectedToken);
+ var yammer = new YammerConsumer();
+ var authorizationResponse = await yammer.ProcessUserAuthorizationAsync(this.yammerUserCode.Text);
if (authorizationResponse != null) {
this.accessTokenLabel.Text = HttpUtility.HtmlEncode(authorizationResponse.AccessToken);
this.MultiView1.SetActiveView(this.AuthorizationCompleteView);