diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-02-09 14:57:34 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-02-09 14:57:34 -0800 |
commit | 2e177b1c58ccd1c8edc2cc78e0c629784173a95c (patch) | |
tree | 0afbda6bc7b6a9ed799a21f275930bb0024f17bd /src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs | |
parent | c822a97c464a31fac7eccfb1ca9fb4f5b70a53b8 (diff) | |
download | DotNetOpenAuth-2e177b1c58ccd1c8edc2cc78e0c629784173a95c.zip DotNetOpenAuth-2e177b1c58ccd1c8edc2cc78e0c629784173a95c.tar.gz DotNetOpenAuth-2e177b1c58ccd1c8edc2cc78e0c629784173a95c.tar.bz2 |
Fixes ASP.NET controls to be async.
Diffstat (limited to 'src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs')
-rw-r--r-- | src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs b/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs index eec7d1c..4740b4b 100644 --- a/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs +++ b/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs @@ -1542,18 +1542,14 @@ namespace DotNetOpenAuth.Messaging { || response.StatusCode == HttpStatusCode.RedirectMethod || response.StatusCode == HttpStatusCode.TemporaryRedirect, "response", "Redirecting response expected."); - Requires.Argument(response.Headers.Location != null, "response", "Redirect URL header expected."); - Requires.Argument(response.Content == null || response.Content is FormUrlEncodedContent, "response", "FormUrlEncodedContent expected"); - var builder = new UriBuilder(response.Headers.Location); - if (response.Content != null) { - var content = response.Content.ReadAsStringAsync(); - Assumes.True(content.IsCompleted); // cached in memory, so it should never complete asynchronously. - var formFields = HttpUtility.ParseQueryString(content.Result).ToDictionary(); - MessagingUtilities.AppendQueryArgs(builder, formFields); + if (response.Headers.Location != null) { + return response.Headers.Location; + } else { + // Some responses are so large that they're HTML/JS self-posting pages. + // We can't create long URLs for those, at present. + throw new NotSupportedException(); } - - return builder.Uri; } /// <summary> |