summaryrefslogtreecommitdiffstats
path: root/src/DotNetOAuth/Messaging/Response.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-10-01 17:20:20 -0700
committerAndrew <andrewarnott@gmail.com>2008-10-02 07:34:04 -0700
commitdf5629e0149a262dcda8dfdb7652b67df77d6845 (patch)
tree25009cb525ad57ce6ec81623ac9810b987b311db /src/DotNetOAuth/Messaging/Response.cs
parentf2fdc58a2d2f1f633de4bdab40657dae49d9a18f (diff)
downloadDotNetOpenAuth-df5629e0149a262dcda8dfdb7652b67df77d6845.zip
DotNetOpenAuth-df5629e0149a262dcda8dfdb7652b67df77d6845.tar.gz
DotNetOpenAuth-df5629e0149a262dcda8dfdb7652b67df77d6845.tar.bz2
Enhanced API to better support Desktop App consumers.
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>