diff options
Diffstat (limited to 'samples/OpenIdWebRingSsoProvider/Default.aspx.cs')
-rw-r--r-- | samples/OpenIdWebRingSsoProvider/Default.aspx.cs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/samples/OpenIdWebRingSsoProvider/Default.aspx.cs b/samples/OpenIdWebRingSsoProvider/Default.aspx.cs index d7e5310..6a930bd 100644 --- a/samples/OpenIdWebRingSsoProvider/Default.aspx.cs +++ b/samples/OpenIdWebRingSsoProvider/Default.aspx.cs @@ -5,18 +5,28 @@ using System.Web; using System.Web.UI; using System.Web.UI.WebControls; + using DotNetOpenAuth.Messaging; using DotNetOpenAuth.OpenId.Provider; using OpenIdWebRingSsoProvider.Code; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { - // The user may have just completed a login. If they're logged in, see if we can complete the OpenID login. - if (User.Identity.IsAuthenticated && ProviderEndpoint.PendingAuthenticationRequest != null) { - Util.ProcessAuthenticationChallenge(ProviderEndpoint.PendingAuthenticationRequest); - if (ProviderEndpoint.PendingAuthenticationRequest.IsAuthenticated.HasValue) { - ProviderEndpoint.SendResponse(); - } - } + this.RegisterAsyncTask( + new PageAsyncTask( + async ct => { + // The user may have just completed a login. If they're logged in, see if we can complete the OpenID login. + if (User.Identity.IsAuthenticated && ProviderEndpoint.PendingAuthenticationRequest != null) { + await + Util.ProcessAuthenticationChallengeAsync( + ProviderEndpoint.PendingAuthenticationRequest, Response.ClientDisconnectedToken); + if (ProviderEndpoint.PendingAuthenticationRequest.IsAuthenticated.HasValue) { + var providerEndpoint = new ProviderEndpoint(); + var responseMessage = await providerEndpoint.PrepareResponseAsync(this.Response.ClientDisconnectedToken); + await responseMessage.SendAsync(new HttpContextWrapper(this.Context), this.Response.ClientDisconnectedToken); + this.Context.Response.End(); + } + } + })); } } } |