diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-01-12 15:11:04 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-01-12 15:11:04 -0800 |
commit | 59c362497f6a724f3e5a1ba94ff3f80d8f6f5dac (patch) | |
tree | 52fd4c1b126b6dca495f9a2ddba95a0c80f8438d /src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs | |
parent | 0617c2490d1e2455f677f927b31f8e017bae3382 (diff) | |
download | DotNetOpenAuth-59c362497f6a724f3e5a1ba94ff3f80d8f6f5dac.zip DotNetOpenAuth-59c362497f6a724f3e5a1ba94ff3f80d8f6f5dac.tar.gz DotNetOpenAuth-59c362497f6a724f3e5a1ba94ff3f80d8f6f5dac.tar.bz2 |
OpenId.Provider now builds.
Diffstat (limited to 'src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs')
-rw-r--r-- | src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs b/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs index 9c5004c..85d111e 100644 --- a/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs +++ b/src/DotNetOpenAuth.OpenId.Provider/OpenId/Provider/HostProcessedRequest.cs @@ -10,6 +10,8 @@ namespace DotNetOpenAuth.OpenId.Provider { using System.Linq; using System.Net; using System.Text; + using System.Threading; + using System.Threading.Tasks; using DotNetOpenAuth.Messaging; using DotNetOpenAuth.OpenId.Messages; using Validation; @@ -22,7 +24,7 @@ namespace DotNetOpenAuth.OpenId.Provider { /// <summary> /// The negative assertion to send, if the host site chooses to send it. /// </summary> - private readonly NegativeAssertionResponse negativeResponse; + private readonly Lazy<Task<NegativeAssertionResponse>> negativeResponse; /// <summary> /// A cache of the result from discovery of the Realm URL. @@ -38,7 +40,7 @@ namespace DotNetOpenAuth.OpenId.Provider { : base(request, provider.SecuritySettings) { Requires.NotNull(provider, "provider"); - this.negativeResponse = new NegativeAssertionResponse(request, provider.Channel); + this.negativeResponse = new Lazy<Task<NegativeAssertionResponse>>(() => NegativeAssertionResponse.CreateAsync(request, CancellationToken.None, provider.Channel)); Reporting.RecordEventOccurrence(this, request.Realm); } @@ -85,13 +87,6 @@ namespace DotNetOpenAuth.OpenId.Provider { } /// <summary> - /// Gets the negative response. - /// </summary> - protected NegativeAssertionResponse NegativeResponse { - get { return this.negativeResponse; } - } - - /// <summary> /// Gets the original request message. /// </summary> /// <value>This may be null in the case of an unrecognizable message.</value> @@ -105,7 +100,7 @@ namespace DotNetOpenAuth.OpenId.Provider { /// Gets a value indicating whether verification of the return URL claimed by the Relying Party /// succeeded. /// </summary> - /// <param name="requestHandler">The request handler.</param> + /// <param name="hostFactories">The host factories.</param> /// <returns> /// Result of realm discovery. /// </returns> @@ -115,9 +110,9 @@ namespace DotNetOpenAuth.OpenId.Provider { /// property getter multiple times in one request is not a performance hit. /// See OpenID Authentication 2.0 spec section 9.2.1. /// </remarks> - public RelyingPartyDiscoveryResult IsReturnUrlDiscoverable(IDirectWebRequestHandler requestHandler) { + public async Task<RelyingPartyDiscoveryResult> IsReturnUrlDiscoverableAsync(IHostFactories hostFactories, CancellationToken cancellationToken) { if (!this.realmDiscoveryResult.HasValue) { - this.realmDiscoveryResult = this.IsReturnUrlDiscoverableCore(requestHandler); + this.realmDiscoveryResult = await this.IsReturnUrlDiscoverableCoreAsync(hostFactories, cancellationToken); } return this.realmDiscoveryResult.Value; @@ -127,13 +122,12 @@ namespace DotNetOpenAuth.OpenId.Provider { /// Gets a value indicating whether verification of the return URL claimed by the Relying Party /// succeeded. /// </summary> - /// <param name="requestHandler">The request handler.</param> + /// <param name="hostFactories">The host factories.</param> /// <returns> /// Result of realm discovery. /// </returns> - private RelyingPartyDiscoveryResult IsReturnUrlDiscoverableCore(IDirectWebRequestHandler requestHandler) { - Requires.NotNull(requestHandler, "requestHandler"); - + private async Task<RelyingPartyDiscoveryResult> IsReturnUrlDiscoverableCoreAsync(IHostFactories hostFactories, CancellationToken cancellationToken) { + Requires.NotNull(hostFactories, "hostFactories"); ErrorUtilities.VerifyInternal(this.Realm != null, "Realm should have been read or derived by now."); try { @@ -142,7 +136,7 @@ namespace DotNetOpenAuth.OpenId.Provider { return RelyingPartyDiscoveryResult.NoServiceDocument; } - var returnToEndpoints = this.Realm.DiscoverReturnToEndpoints(requestHandler, false); + var returnToEndpoints = await this.Realm.DiscoverReturnToEndpointsAsync(hostFactories, false, cancellationToken); if (returnToEndpoints == null) { return RelyingPartyDiscoveryResult.NoServiceDocument; } @@ -178,5 +172,12 @@ namespace DotNetOpenAuth.OpenId.Provider { } #endregion + + /// <summary> + /// Gets the negative response. + /// </summary> + protected Task<NegativeAssertionResponse> GetNegativeResponseAsync() { + return this.negativeResponse.Value; + } } } |