diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-10-01 17:20:20 -0700 |
---|---|---|
committer | Andrew <andrewarnott@gmail.com> | 2008-10-02 07:34:04 -0700 |
commit | df5629e0149a262dcda8dfdb7652b67df77d6845 (patch) | |
tree | 25009cb525ad57ce6ec81623ac9810b987b311db /src/DotNetOAuth/Messaging/Response.cs | |
parent | f2fdc58a2d2f1f633de4bdab40657dae49d9a18f (diff) | |
download | DotNetOpenAuth-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.cs | 19 |
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>
|