summaryrefslogtreecommitdiffstats
path: root/src/DotNetOAuth/Messaging/Response.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOAuth/Messaging/Response.cs')
-rw-r--r--src/DotNetOAuth/Messaging/Response.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/DotNetOAuth/Messaging/Response.cs b/src/DotNetOAuth/Messaging/Response.cs
index 833ceb5..36941b3 100644
--- a/src/DotNetOAuth/Messaging/Response.cs
+++ b/src/DotNetOAuth/Messaging/Response.cs
@@ -90,6 +90,25 @@ namespace DotNetOAuth.Messaging {
internal IProtocolMessage OriginalMessage { get; set; }
/// <summary>
+ /// Gets the URI that, when requested with an HTTP GET request,
+ /// would transmit the message that normally be transmitted via a user agent redirect.
+ /// </summary>
+ internal Uri DirectUriRequest {
+ get {
+ var message = this.OriginalMessage as IDirectedProtocolMessage;
+ if (message == null) {
+ throw new InvalidOperationException(); // this only makes sense for directed messages (indirect responses)
+ }
+
+ var serializer = MessageSerializer.Get(message.GetType());
+ var fields = serializer.Serialize(message);
+ UriBuilder builder = new UriBuilder(message.Recipient);
+ MessagingUtilities.AppendQueryArgs(builder, fields);
+ return builder.Uri;
+ }
+ }
+
+ /// <summary>
/// Creates a text reader for the response stream.
/// </summary>
/// <returns>The text reader, initialized for the proper encoding.</returns>