summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2013-02-09 14:57:34 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2013-02-09 14:57:34 -0800
commit2e177b1c58ccd1c8edc2cc78e0c629784173a95c (patch)
tree0afbda6bc7b6a9ed799a21f275930bb0024f17bd /src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs
parentc822a97c464a31fac7eccfb1ca9fb4f5b70a53b8 (diff)
downloadDotNetOpenAuth-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.cs16
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>