summaryrefslogtreecommitdiffstats
path: root/samples/OpenIdProviderWebForms/Code
diff options
context:
space:
mode:
Diffstat (limited to 'samples/OpenIdProviderWebForms/Code')
-rw-r--r--samples/OpenIdProviderWebForms/Code/CustomStore.cs2
-rw-r--r--samples/OpenIdProviderWebForms/Code/OAuthHybrid.cs4
-rw-r--r--samples/OpenIdProviderWebForms/Code/Util.cs35
3 files changed, 35 insertions, 6 deletions
diff --git a/samples/OpenIdProviderWebForms/Code/CustomStore.cs b/samples/OpenIdProviderWebForms/Code/CustomStore.cs
index 6a776cf..6c440af 100644
--- a/samples/OpenIdProviderWebForms/Code/CustomStore.cs
+++ b/samples/OpenIdProviderWebForms/Code/CustomStore.cs
@@ -25,7 +25,7 @@ namespace OpenIdProviderWebForms.Code {
/// But we "persist" all associations and nonces into a DataTable to demonstrate
/// that using a database is possible.
/// </remarks>
- public class CustomStore : IOpenIdApplicationStore {
+ public class CustomStore : ICryptoKeyAndNonceStore {
private static CustomStoreDataSet dataSet = new CustomStoreDataSet();
#region INonceStore Members
diff --git a/samples/OpenIdProviderWebForms/Code/OAuthHybrid.cs b/samples/OpenIdProviderWebForms/Code/OAuthHybrid.cs
index 8e64bfb..f96e87e 100644
--- a/samples/OpenIdProviderWebForms/Code/OAuthHybrid.cs
+++ b/samples/OpenIdProviderWebForms/Code/OAuthHybrid.cs
@@ -37,8 +37,8 @@ namespace OpenIdProviderWebForms.Code {
internal static ServiceProviderOpenIdProvider ServiceProvider { get; private set; }
- internal static ServiceProviderDescription GetServiceDescription() {
- return new ServiceProviderDescription {
+ internal static ServiceProviderHostDescription GetServiceDescription() {
+ return new ServiceProviderHostDescription {
TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() },
};
}
diff --git a/samples/OpenIdProviderWebForms/Code/Util.cs b/samples/OpenIdProviderWebForms/Code/Util.cs
index deff447..5333124 100644
--- a/samples/OpenIdProviderWebForms/Code/Util.cs
+++ b/samples/OpenIdProviderWebForms/Code/Util.cs
@@ -6,11 +6,13 @@
namespace OpenIdProviderWebForms.Code {
using System;
+ using System.Threading;
+ using System.Threading.Tasks;
using System.Web;
using DotNetOpenAuth.OpenId;
using DotNetOpenAuth.OpenId.Provider;
- public class Util {
+ public static class Util {
public static string ExtractUserName(Uri url) {
return url.Segments[url.Segments.Length - 1];
}
@@ -52,7 +54,7 @@ namespace OpenIdProviderWebForms.Code {
// add extension responses here.
}
} else {
- HttpContext.Current.Response.Redirect("~/decide.aspx", true);
+ HttpContext.Current.Response.Redirect("~/decide.aspx", false);
}
}
@@ -68,8 +70,35 @@ namespace OpenIdProviderWebForms.Code {
// These would typically be filled in from a user database
}
} else {
- HttpContext.Current.Response.Redirect("~/decide.aspx", true);
+ HttpContext.Current.Response.Redirect("~/decide.aspx", false);
}
}
+
+ internal static Task ToApm(this Task task, AsyncCallback callback, object state) {
+ if (task == null) {
+ throw new ArgumentNullException("task");
+ }
+
+ var tcs = new TaskCompletionSource<object>(state);
+ task.ContinueWith(
+ t => {
+ if (t.IsFaulted) {
+ tcs.TrySetException(t.Exception.InnerExceptions);
+ } else if (t.IsCanceled) {
+ tcs.TrySetCanceled();
+ } else {
+ tcs.TrySetResult(null);
+ }
+
+ if (callback != null) {
+ callback(tcs.Task);
+ }
+ },
+ CancellationToken.None,
+ TaskContinuationOptions.None,
+ TaskScheduler.Default);
+
+ return tcs.Task;
+ }
}
} \ No newline at end of file