summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-04-15 21:15:24 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2008-04-15 22:23:48 -0700
commitea36fd5a24e311cfa399fd36f86b7ec55113cc8f (patch)
tree42bf3c147a7c7adc9da0cd87b5c2d299943647a7 /src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs
parentbedb0be63a15af113ce584b3e24f01a2b9daa1a1 (diff)
downloadDotNetOpenAuth-ea36fd5a24e311cfa399fd36f86b7ec55113cc8f.zip
DotNetOpenAuth-ea36fd5a24e311cfa399fd36f86b7ec55113cc8f.tar.gz
DotNetOpenAuth-ea36fd5a24e311cfa399fd36f86b7ec55113cc8f.tar.bz2
BREAKING CHANGE for SimpleRegistration extension, and other stuff.
* SimpleRegistration changed from struct to class. * SimpleRegistrationFieldValues.None and SimpleRegistrationRequestFields.None removed. * Semantic for extension classes that ReadFromRequest or ReadFromResponse and don't find any matching parameters changed from returning an empty struct to returning null. * Added framework for testing extensions. * Upgraded TestWeb project to .NET 3.5. * Built up bare framework for sending/receiving Attribute Exchange extension messages.
Diffstat (limited to 'src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs')
-rw-r--r--src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs b/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs
index 1b125ce..32be3c9 100644
--- a/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs
+++ b/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs
@@ -12,12 +12,7 @@ namespace DotNetOpenId.Extensions {
/// </summary>
#pragma warning disable 0659, 0661
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2218:OverrideGetHashCodeOnOverridingEquals")]
- public struct SimpleRegistrationRequestFields {
- /// <summary>
- /// Gets a <see cref="SimpleRegistrationRequestFields"/> struct where no information is requested.
- /// </summary>
- public static readonly SimpleRegistrationRequestFields None = new SimpleRegistrationRequestFields();
-
+ public class SimpleRegistrationRequestFields : IExtensionRequest {
/// <summary>
/// The level of interest a relying party has in the nickname of the user.
/// </summary>
@@ -135,28 +130,37 @@ namespace DotNetOpenId.Extensions {
/// and returns information on what profile fields the consumer is requesting/requiring.
/// </summary>
public static SimpleRegistrationRequestFields ReadFromRequest(IRequest request) {
- SimpleRegistrationRequestFields fields = new SimpleRegistrationRequestFields();
+ var fields = new SimpleRegistrationRequestFields();
+ ((IExtensionRequest)fields).ReadFromRequest(request);
+ return fields;
+ }
+
+ #region IExtensionRequest Members
+ string IExtensionRequest.TypeUri { get { return Constants.sreg.sreg_ns; } }
+
+ bool IExtensionRequest.ReadFromRequest(IRequest request) {
var args = request.GetExtensionArguments(Constants.sreg.sreg_ns);
- if (args == null) return fields;
+ if (args == null) return false;
string policyUrl;
if (args.TryGetValue(Constants.sreg.policy_url, out policyUrl)
&& !string.IsNullOrEmpty(policyUrl)) {
- fields.PolicyUrl = new Uri(policyUrl);
+ PolicyUrl = new Uri(policyUrl);
}
string optionalFields;
if (args.TryGetValue(Constants.sreg.optional, out optionalFields)) {
- fields.SetProfileRequestFromList(optionalFields.Split(','), SimpleRegistrationRequest.Request);
+ SetProfileRequestFromList(optionalFields.Split(','), SimpleRegistrationRequest.Request);
}
string requiredFields;
if (args.TryGetValue(Constants.sreg.required, out requiredFields)) {
- fields.SetProfileRequestFromList(requiredFields.Split(','), SimpleRegistrationRequest.Require);
+ SetProfileRequestFromList(requiredFields.Split(','), SimpleRegistrationRequest.Require);
}
- return fields;
+ return true;
}
+
/// <summary>
/// Adds a description of the information the relying party site would like
/// the Provider to include with a positive authentication assertion as an
@@ -172,6 +176,7 @@ namespace DotNetOpenId.Extensions {
request.AddExtensionArguments(Constants.sreg.sreg_ns, fields);
}
+ #endregion
/// <summary>
/// Renders the requested information as a string.