summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs')
-rw-r--r--src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs b/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs
index d75b923..098a812 100644
--- a/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs
+++ b/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs
@@ -1,18 +1,9 @@
using System;
-using System.Collections;
-using System.Configuration;
-using System.Data;
-using System.Web;
-using System.Web.Security;
-using System.Web.UI;
-using System.Web.UI.HtmlControls;
-using System.Web.UI.WebControls;
-using System.Web.UI.WebControls.WebParts;
-using System.Collections.Specialized;
using System.Collections.Generic;
using DotNetOpenId.Extensions.AttributeExchange;
using DotNetOpenId.Extensions.SimpleRegistration;
using SregDemandLevel = DotNetOpenId.Extensions.SimpleRegistration.DemandLevel;
+using DotNetOpenId.Extensions.ProviderAuthenticationPolicy;
using System.Globalization;
public partial class ProviderEndpoint : System.Web.UI.Page {
@@ -32,11 +23,13 @@ public partial class ProviderEndpoint : System.Web.UI.Page {
void respondToExtensions(DotNetOpenId.Provider.IRequest request, TestSupport.Scenarios scenario) {
var sregRequest = request.GetExtension<ClaimsRequest>();
- var sregResponse = new ClaimsResponse();
+ var sregResponse = sregRequest != null ? sregRequest.CreateResponse() : null;
var aeFetchRequest = request.GetExtension<FetchRequest>();
var aeFetchResponse = new FetchResponse();
var aeStoreRequest = request.GetExtension<StoreRequest>();
var aeStoreResponse = new StoreResponse();
+ var papeRequest = request.GetExtension<PolicyRequest>();
+ var papeResponse = new PolicyResponse();
switch (scenario) {
case TestSupport.Scenarios.ExtensionFullCooperation:
if (sregRequest != null) {
@@ -61,6 +54,14 @@ public partial class ProviderEndpoint : System.Web.UI.Page {
aeFetchResponse.AddAttribute(storedAttributes[att2.TypeUri]);
}
}
+ if (papeRequest != null) {
+ if (papeRequest.MaximumAuthenticationAge.HasValue) {
+ papeResponse.AuthenticationTimeUtc = DateTime.UtcNow - (papeRequest.MaximumAuthenticationAge.Value - TimeSpan.FromSeconds(30));
+ }
+ if (papeRequest.PreferredAuthLevelTypes.Contains("http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf")) {
+ papeResponse.NistAssuranceLevel = NistAssuranceLevel.Level1;
+ }
+ }
break;
case TestSupport.Scenarios.ExtensionPartialCooperation:
if (sregRequest != null) {
@@ -96,6 +97,7 @@ public partial class ProviderEndpoint : System.Web.UI.Page {
if (sregRequest != null) request.AddResponseExtension(sregResponse);
if (aeFetchRequest != null) request.AddResponseExtension(aeFetchResponse);
if (aeStoreRequest != null) request.AddResponseExtension(aeStoreResponse);
+ if (papeRequest != null) request.AddResponseExtension(papeResponse);
}
protected void ProviderEndpoint1_AuthenticationChallenge(object sender, DotNetOpenId.Provider.AuthenticationChallengeEventArgs e) {