summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId/IEncodable.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-05-26 23:15:21 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2008-05-26 23:15:21 -0700
commit24bcd4604eef4e77c0db3408df65ea3f7ff33e0e (patch)
tree2c7fddddd0351473966ecaa27cef9ec1836ab072 /src/DotNetOpenId/IEncodable.cs
parentea26f06c67848867d693c178335dad579e987154 (diff)
downloadDotNetOpenAuth-24bcd4604eef4e77c0db3408df65ea3f7ff33e0e.zip
DotNetOpenAuth-24bcd4604eef4e77c0db3408df65ea3f7ff33e0e.tar.gz
DotNetOpenAuth-24bcd4604eef4e77c0db3408df65ea3f7ff33e0e.tar.bz2
Breaking changes! OpenID indirect messages larger than 2KB are now sent via form POST instead of GET.
Refactored public API to allow for form POST responses. This scenario is not being tested.
Diffstat (limited to 'src/DotNetOpenId/IEncodable.cs')
-rw-r--r--src/DotNetOpenId/IEncodable.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/DotNetOpenId/IEncodable.cs b/src/DotNetOpenId/IEncodable.cs
new file mode 100644
index 0000000..ef5ab60
--- /dev/null
+++ b/src/DotNetOpenId/IEncodable.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DotNetOpenId {
+ internal enum EncodingType {
+ None,
+ /// <summary>
+ /// Data to be sent to the OP or RP site by telling the user agent to
+ /// redirect GET or form POST to a special URL with a payload of arguments.
+ /// </summary>
+ IndirectMessage,
+ /// <summary>
+ /// Provider response data to be sent directly to the Relying Party site,
+ /// in response to a direct request initiated by the RP
+ /// (not indirect via the user agent).
+ /// Key-Value Form encoding will be used.
+ /// </summary>
+ DirectResponse
+ }
+
+ /// <remarks>
+ /// Classes that implement IEncodable should be either [Serializable] or
+ /// derive from <see cref="MarshalByRefObject"/> so that testing can
+ /// remote across app-domain boundaries to sniff/tamper with messages.
+ /// </remarks>
+ internal interface IEncodable {
+ EncodingType EncodingType { get; }
+ IDictionary<string, string> EncodedFields { get; }
+ Uri RedirectUrl { get; }
+ Protocol Protocol { get; }
+ }
+}