diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-04-15 21:15:24 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2008-04-15 22:23:48 -0700 |
commit | ea36fd5a24e311cfa399fd36f86b7ec55113cc8f (patch) | |
tree | 42bf3c147a7c7adc9da0cd87b5c2d299943647a7 /src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs | |
parent | bedb0be63a15af113ce584b3e24f01a2b9daa1a1 (diff) | |
download | DotNetOpenAuth-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.TestWeb/ProviderEndpoint.aspx.cs')
-rw-r--r-- | src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs b/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs index 5743628..10cb735 100644 --- a/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs +++ b/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs @@ -9,13 +9,40 @@ using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Specialized;
+using DotNetOpenId.Extensions;
public partial class ProviderEndpoint : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
}
+ void respondToExtensions(DotNetOpenId.Provider.IRequest request, TestSupport.Scenarios scenario) {
+ var sregRequest = SimpleRegistrationRequestFields.ReadFromRequest(request);
+ var sregResponse = new SimpleRegistrationFieldValues();
+ var aeFetchRequest = AttributeExchangeFetchRequest.ReadFromRequest(request);
+ var aeFetchResponse = new AttributeExchangeFetchResponse();
+ var aeStoreRequest = AttributeExchangeStoreRequest.ReadFromRequest(request);
+ var aeStoreResponse = new AttributeExchangeStoreResponse();
+ switch (scenario) {
+ case TestSupport.Scenarios.ExtensionFullCooperation:
+ if (sregRequest.FullName != SimpleRegistrationRequest.NoRequest)
+ sregResponse.FullName = "Andrew Arnott";
+ if (sregRequest.Email != SimpleRegistrationRequest.NoRequest)
+ sregResponse.Email = "andrewarnott@gmail.com";
+ break;
+ case TestSupport.Scenarios.ExtensionPartialCooperation:
+ if (sregRequest.FullName == SimpleRegistrationRequest.Require)
+ sregResponse.FullName = "Andrew Arnott";
+ if (sregRequest.Email == SimpleRegistrationRequest.Require)
+ sregResponse.Email = "andrewarnott@gmail.com";
+ break;
+ }
+ sregResponse.AddToResponse(request);
+ if (aeFetchRequest != null) aeFetchResponse.AddToResponse(request);
+ if (aeStoreRequest != null) aeStoreResponse.AddToResponse(request);
+ }
+
protected void ProviderEndpoint1_AuthenticationChallenge(object sender, DotNetOpenId.Provider.AuthenticationChallengeEventArgs e) {
- TestSupport.Scenarios scenario = (TestSupport.Scenarios)Enum.Parse(typeof(TestSupport.Scenarios),
+ TestSupport.Scenarios scenario = (TestSupport.Scenarios)Enum.Parse(typeof(TestSupport.Scenarios),
new Uri(e.Request.LocalIdentifier.ToString()).AbsolutePath.TrimStart('/'));
switch (scenario) {
case TestSupport.Scenarios.AutoApproval:
@@ -28,6 +55,11 @@ public partial class ProviderEndpoint : System.Web.UI.Page { case TestSupport.Scenarios.AlwaysDeny:
e.Request.IsAuthenticated = false;
break;
+ case TestSupport.Scenarios.ExtensionFullCooperation:
+ case TestSupport.Scenarios.ExtensionPartialCooperation:
+ respondToExtensions(e.Request, scenario);
+ e.Request.IsAuthenticated = true;
+ break;
default:
throw new InvalidOperationException("Unrecognized scenario");
}
|