diff options
Diffstat (limited to 'samples/OAuthClient/WindowsLive.aspx.cs')
-rw-r--r-- | samples/OAuthClient/WindowsLive.aspx.cs | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/samples/OAuthClient/WindowsLive.aspx.cs b/samples/OAuthClient/WindowsLive.aspx.cs index 23566c5..efe41ec 100644 --- a/samples/OAuthClient/WindowsLive.aspx.cs +++ b/samples/OAuthClient/WindowsLive.aspx.cs @@ -18,31 +18,39 @@ ClientCredentialApplicator = ClientCredentialApplicator.PostParameter(ConfigurationManager.AppSettings["WindowsLiveAppSecret"]), }; - protected async void Page_Load(object sender, EventArgs e) { - if (string.Equals("localhost", this.Request.Headers["Host"].Split(':')[0], StringComparison.OrdinalIgnoreCase)) { - this.localhostDoesNotWorkPanel.Visible = true; - var builder = new UriBuilder(this.publicLink.NavigateUrl); - builder.Port = this.Request.Url.Port; - this.publicLink.NavigateUrl = builder.Uri.AbsoluteUri; - this.publicLink.Text = builder.Uri.AbsoluteUri; - } else { - IAuthorizationState authorization = await client.ProcessUserAuthorizationAsync(new HttpRequestWrapper(Request), Response.ClientDisconnectedToken); - if (authorization == null) { - // Kick off authorization request - var request = await client.PrepareRequestUserAuthorizationAsync(scopes: new[] { WindowsLiveClient.Scopes.Basic }); // this scope isn't even required just to log in - await request.SendAsync(new HttpContextWrapper(this.Context), Response.ClientDisconnectedToken); - this.Context.Response.End(); - } else { - var request = - WebRequest.Create("https://apis.live.net/v5.0/me?access_token=" + Uri.EscapeDataString(authorization.AccessToken)); - using (var response = request.GetResponse()) { - using (var responseStream = response.GetResponseStream()) { - var graph = WindowsLiveGraph.Deserialize(responseStream); - this.nameLabel.Text = HttpUtility.HtmlEncode(graph.Name); + protected void Page_Load(object sender, EventArgs e) { + this.RegisterAsyncTask( + new PageAsyncTask( + async ct => { + if (string.Equals("localhost", this.Request.Headers["Host"].Split(':')[0], StringComparison.OrdinalIgnoreCase)) { + this.localhostDoesNotWorkPanel.Visible = true; + var builder = new UriBuilder(this.publicLink.NavigateUrl); + builder.Port = this.Request.Url.Port; + this.publicLink.NavigateUrl = builder.Uri.AbsoluteUri; + this.publicLink.Text = builder.Uri.AbsoluteUri; + } else { + IAuthorizationState authorization = + await client.ProcessUserAuthorizationAsync(new HttpRequestWrapper(Request), Response.ClientDisconnectedToken); + if (authorization == null) { + // Kick off authorization request + var request = + await client.PrepareRequestUserAuthorizationAsync(scopes: new[] { WindowsLiveClient.Scopes.Basic }); + // this scope isn't even required just to log in + await request.SendAsync(new HttpContextWrapper(this.Context), Response.ClientDisconnectedToken); + this.Context.Response.End(); + } else { + var request = + WebRequest.Create( + "https://apis.live.net/v5.0/me?access_token=" + Uri.EscapeDataString(authorization.AccessToken)); + using (var response = request.GetResponse()) { + using (var responseStream = response.GetResponseStream()) { + var graph = WindowsLiveGraph.Deserialize(responseStream); + this.nameLabel.Text = HttpUtility.HtmlEncode(graph.Name); + } + } + } } - } - } - } + })); } } } |