summaryrefslogtreecommitdiffstats
path: root/samples/OAuthClient/WindowsLive.aspx.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2013-03-04 15:02:41 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2013-03-04 15:02:41 -0800
commitbbb0214b9f41ad8bcd44eba3714b463eee29fe86 (patch)
tree30787ba8be3b39fce16dc7d32f1e6f6ce177340c /samples/OAuthClient/WindowsLive.aspx.cs
parent9c7bd4ad8a4de0147ad93d00813eb4874e031477 (diff)
downloadDotNetOpenAuth-bbb0214b9f41ad8bcd44eba3714b463eee29fe86.zip
DotNetOpenAuth-bbb0214b9f41ad8bcd44eba3714b463eee29fe86.tar.gz
DotNetOpenAuth-bbb0214b9f41ad8bcd44eba3714b463eee29fe86.tar.bz2
Changed all ASP.NET async void event handlers to use RegisterAsyncTask, which avoids bugs in ASP.NET.
Diffstat (limited to 'samples/OAuthClient/WindowsLive.aspx.cs')
-rw-r--r--samples/OAuthClient/WindowsLive.aspx.cs56
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);
+ }
+ }
+ }
}
- }
- }
- }
+ }));
}
}
}