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);
                     }
                 }
             }
         }
     }));
 }
示例#2
0
        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 windowsLiveClient.ProcessUserAuthorizationAsync(new HttpRequestWrapper(Request), ct);
                    if (authorization == null)
                    {
                        // Kick off authorization request
                        var request = await windowsLiveClient.PrepareRequestUserAuthorizationAsync(
                            scopes: new[] { WindowsLiveClient.Scopes.Basic },                                             // this scope isn't even required just to log in
                            cancellationToken: ct);
                        await request.SendAsync(new HttpContextWrapper(Context), ct);
                        this.Context.Response.End();

                        // alternatively you can ask for more information
                        // windowsLiveClient.RequestUserAuthorization(scope: new[] { WindowsLiveClient.Scopes.SignIn, WindowsLiveClient.Scopes.Emails, WindowsLiveClient.Scopes.Birthday });
                    }
                    else
                    {
                        IOAuth2Graph oauth2Graph = await windowsLiveClient.GetGraphAsync(authorization, cancellationToken: ct);

                        this.nameLabel.Text = HttpUtility.HtmlEncode(oauth2Graph.Name);
                    }
                }
            }));
        }