diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-04 13:54:33 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-04 13:54:33 -0800 |
commit | 36bbbea5002c889558a67c380e46dff668251b25 (patch) | |
tree | 87721c7f13cfd27b75f7132b71549688b55eb14a /src/DotNetOpenAuth.OpenId.RelyingParty | |
parent | fd85211bfc50805d740392bfc6770df7c6f4c7d0 (diff) | |
download | DotNetOpenAuth-36bbbea5002c889558a67c380e46dff668251b25.zip DotNetOpenAuth-36bbbea5002c889558a67c380e46dff668251b25.tar.gz DotNetOpenAuth-36bbbea5002c889558a67c380e46dff668251b25.tar.bz2 |
Switched Channel to receiving messages via HttpRequestMessage as well.
Diffstat (limited to 'src/DotNetOpenAuth.OpenId.RelyingParty')
-rw-r--r-- | src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/RelyingParty/OpenIdRelyingParty.cs | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/RelyingParty/OpenIdRelyingParty.cs b/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/RelyingParty/OpenIdRelyingParty.cs index 6a1ef83..33bec3b 100644 --- a/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/RelyingParty/OpenIdRelyingParty.cs +++ b/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/RelyingParty/OpenIdRelyingParty.cs @@ -520,9 +520,9 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// <remarks> /// Requires an <see cref="HttpContext.Current">HttpContext.Current</see> context. /// </remarks> - public Task<IAuthenticationResponse> GetResponseAsync(CancellationToken cancellationToken = default(CancellationToken)) { - RequiresEx.ValidState(HttpContext.Current != null && HttpContext.Current.Request != null, MessagingStrings.HttpContextRequired); - return this.GetResponseAsync(this.Channel.GetRequestFromContext(), cancellationToken); + public Task<IAuthenticationResponse> GetResponseAsync(HttpRequestBase request = null, CancellationToken cancellationToken = default(CancellationToken)) { + request = request ?? this.channel.GetRequestFromContext(); + return this.GetResponseAsync(request.AsHttpRequestMessage(), cancellationToken); } /// <summary> @@ -533,10 +533,10 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// <returns> /// The processed authentication response if there is any; <c>null</c> otherwise. /// </returns> - public async Task<IAuthenticationResponse> GetResponseAsync(HttpRequestBase httpRequestInfo, CancellationToken cancellationToken = default(CancellationToken)) { - Requires.NotNull(httpRequestInfo, "httpRequestInfo"); + public async Task<IAuthenticationResponse> GetResponseAsync(HttpRequestMessage request, CancellationToken cancellationToken = default(CancellationToken)) { + Requires.NotNull(request, "httpRequestInfo"); try { - var message = await this.Channel.ReadFromRequestAsync(httpRequestInfo, cancellationToken); + var message = await this.Channel.ReadFromRequestAsync(request, cancellationToken); PositiveAssertionResponse positiveAssertion; NegativeAssertionResponse negativeAssertion; IndirectSignedResponse positiveExtensionOnly; @@ -572,6 +572,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// <summary> /// Processes the response received in a popup window or iframe to an AJAX-directed OpenID authentication. /// </summary> + /// <param name="request">The request.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns> /// The HTTP response to send to this HTTP request. @@ -579,10 +580,9 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// <remarks> /// Requires an <see cref="HttpContext.Current">HttpContext.Current</see> context. /// </remarks> - public Task<HttpResponseMessage> ProcessResponseFromPopupAsync(CancellationToken cancellationToken) { - RequiresEx.ValidState(HttpContext.Current != null && HttpContext.Current.Request != null, MessagingStrings.HttpContextRequired); - - return this.ProcessResponseFromPopupAsync(this.Channel.GetRequestFromContext(), cancellationToken); + public Task<HttpResponseMessage> ProcessResponseFromPopupAsync(HttpRequestBase request = null, CancellationToken cancellationToken = default(CancellationToken)) { + request = request ?? this.Channel.GetRequestFromContext(); + return this.ProcessResponseFromPopupAsync(request.AsHttpRequestMessage(), cancellationToken); } /// <summary> @@ -593,9 +593,8 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// <returns> /// The HTTP response to send to this HTTP request. /// </returns> - public Task<HttpResponseMessage> ProcessResponseFromPopupAsync(HttpRequestBase request, CancellationToken cancellationToken) { + public Task<HttpResponseMessage> ProcessResponseFromPopupAsync(HttpRequestMessage request, CancellationToken cancellationToken = default(CancellationToken)) { Requires.NotNull(request, "request"); - return this.ProcessResponseFromPopupAsync(request, null, cancellationToken); } @@ -680,11 +679,11 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// The HTTP response to send to this HTTP request. /// </returns> [SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "OpenID", Justification = "real word"), SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "iframe", Justification = "Code contracts")] - internal async Task<HttpResponseMessage> ProcessResponseFromPopupAsync(HttpRequestBase request, Action<AuthenticationStatus> callback, CancellationToken cancellationToken) { + internal async Task<HttpResponseMessage> ProcessResponseFromPopupAsync(HttpRequestMessage request, Action<AuthenticationStatus> callback, CancellationToken cancellationToken) { Requires.NotNull(request, "request"); string extensionsJson = null; - var authResponse = await this.NonVerifyingRelyingParty.GetResponseAsync(cancellationToken); + var authResponse = await this.NonVerifyingRelyingParty.GetResponseAsync(request, cancellationToken); ErrorUtilities.VerifyProtocol(authResponse != null, OpenIdStrings.PopupRedirectMissingResponse); // Give the caller a chance to notify the hosting page and fill up the clientScriptExtensions collection. @@ -692,7 +691,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { callback(authResponse.Status); } - Logger.OpenId.DebugFormat("Popup or iframe callback from OP: {0}", request.Url); + Logger.OpenId.DebugFormat("Popup or iframe callback from OP: {0}", request.RequestUri); Logger.Controls.DebugFormat( "An authentication response was found in a popup window or iframe using a non-verifying RP with status: {0}", authResponse.Status); @@ -714,13 +713,13 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { } string payload = "document.URL"; - if (request.HttpMethod == "POST") { + if (request.Method == HttpMethod.Post) { // Promote all form variables to the query string, but since it won't be passed // to any server (this is a javascript window-to-window transfer) the length of // it can be arbitrarily long, whereas it was POSTed here probably because it // was too long for HTTP transit. - UriBuilder payloadUri = new UriBuilder(request.Url); - payloadUri.AppendQueryArgs(request.Form.ToDictionary()); + UriBuilder payloadUri = new UriBuilder(request.RequestUri); + payloadUri.AppendQueryArgs(await Channel.ParseUrlEncodedFormContentAsync(request, cancellationToken)); payload = MessagingUtilities.GetSafeJavascriptValue(payloadUri.Uri.AbsoluteUri); } |