diff options
Diffstat (limited to 'samples/OpenIdProviderWebForms/Code')
-rw-r--r-- | samples/OpenIdProviderWebForms/Code/CustomStore.cs | 2 | ||||
-rw-r--r-- | samples/OpenIdProviderWebForms/Code/OAuthHybrid.cs | 4 | ||||
-rw-r--r-- | samples/OpenIdProviderWebForms/Code/Util.cs | 35 |
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 |