diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2010-06-17 23:35:51 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2010-06-17 23:35:51 -0700 |
commit | 1cfef2932368360a450e963f9e83c32cfd112f55 (patch) | |
tree | 4fb0c5a68ff6cd7af3c25d3156f0aaed266924fb /samples/OAuthConsumer/Yammer.aspx.cs | |
parent | 5fcb636cd7485ccc1c19e36ddb212577ac0c7b43 (diff) | |
download | DotNetOpenAuth-1cfef2932368360a450e963f9e83c32cfd112f55.zip DotNetOpenAuth-1cfef2932368360a450e963f9e83c32cfd112f55.tar.gz DotNetOpenAuth-1cfef2932368360a450e963f9e83c32cfd112f55.tar.bz2 |
Added sample Yammer OAuth 1.0 consumer.
Yammer has a troublesome non-standard implementation of OAuth SP.
Diffstat (limited to 'samples/OAuthConsumer/Yammer.aspx.cs')
-rw-r--r-- | samples/OAuthConsumer/Yammer.aspx.cs | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/samples/OAuthConsumer/Yammer.aspx.cs b/samples/OAuthConsumer/Yammer.aspx.cs new file mode 100644 index 0000000..0c5b59e --- /dev/null +++ b/samples/OAuthConsumer/Yammer.aspx.cs @@ -0,0 +1,76 @@ +namespace OAuthConsumer { + using System; + using System.Collections.Generic; + using System.Configuration; + using System.Linq; + using System.Web; + using System.Web.UI; + using System.Web.UI.WebControls; + using DotNetOpenAuth.ApplicationBlock; + using DotNetOpenAuth.Messaging; + 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"]; } + 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) { + this.MultiView1.SetActiveView(BeginAuthorizationView); + } + } + + protected void getYammerMessages_Click(object sender, EventArgs e) { + var yammer = new WebConsumer(YammerConsumer.ServiceDescription, this.TokenManager); + } + + protected void obtainAuthorizationButton_Click(object sender, EventArgs e) { + var yammer = YammerConsumer.CreateConsumer(this.TokenManager); + string requestToken; + Uri popupWindowLocation = YammerConsumer.PrepareRequestAuthorization(yammer, out requestToken); + this.RequestToken = requestToken; + string javascript = "window.open('" + popupWindowLocation.AbsoluteUri + "');"; + this.Page.ClientScript.RegisterStartupScript(GetType(), "YammerPopup", javascript, true); + MultiView1.SetActiveView(CompleteAuthorizationView); + } + + protected void finishAuthorizationButton_Click(object sender, EventArgs e) { + if (!Page.IsValid) { + return; + } + + var yammer = YammerConsumer.CreateConsumer(this.TokenManager); + var authorizationResponse = YammerConsumer.CompleteAuthorization(yammer, this.RequestToken, yammerUserCode.Text); + if (authorizationResponse != null) { + this.accessTokenLabel.Text = HttpUtility.HtmlEncode(authorizationResponse.AccessToken); + this.MultiView1.SetActiveView(this.AuthorizationCompleteView); + } else { + this.MultiView1.SetActiveView(this.BeginAuthorizationView); + this.authorizationErrorLabel.Visible = true; + } + } + } +}
\ No newline at end of file |