summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs b/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs
index cfb9da3..337c86d 100644
--- a/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs
+++ b/src/DotNetOpenAuth.Core/Messaging/MessagingUtilities.cs
@@ -1205,8 +1205,13 @@ namespace DotNetOpenAuth.Messaging {
foreach (string headerName in request.Headers) {
string[] headerValues = request.Headers.GetValues(headerName);
- if (!message.Headers.TryAddWithoutValidation(headerName, headerValues)) {
- message.Content.Headers.TryAddWithoutValidation(headerName, headerValues);
+ if (headerName == "Authorization" && headerValues.Length > 1) {
+ // The TryAddWithoutValidation doesn't do this quite right, so do it by hand.
+ message.Headers.Authorization = AuthenticationHeaderValue.Parse(string.Join(",", headerValues));
+ } else {
+ if (!message.Headers.TryAddWithoutValidation(headerName, headerValues)) {
+ message.Content.Headers.TryAddWithoutValidation(headerName, headerValues);
+ }
}
}
}