summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs')
-rw-r--r--src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs b/src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs
index f8d542d..b656150 100644
--- a/src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs
+++ b/src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs
@@ -15,12 +15,15 @@ namespace DotNetOpenAuth.OpenId {
using System.Net.Cache;
using System.Net.Http;
using System.Text.RegularExpressions;
+ using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;
using DotNetOpenAuth.Messaging;
using DotNetOpenAuth.OpenId.ChannelElements;
using DotNetOpenAuth.OpenId.Extensions;
+ using DotNetOpenAuth.OpenId.RelyingParty;
+
using Org.Mentalis.Security.Cryptography;
using Validation;
@@ -79,6 +82,15 @@ namespace DotNetOpenAuth.OpenId {
return string.Format(CultureInfo.InvariantCulture, "{{{0}}}{{{1}}}", DateTime.UtcNow.Ticks, uniq);
}
+ public static async Task RedirectToProviderAsync(this IAuthenticationRequest authenticationRequest, HttpContextBase context = null, CancellationToken cancellationToken = default(CancellationToken)) {
+ Requires.NotNull(authenticationRequest, "authenticationRequest");
+ Verify.Operation(context != null || HttpContext.Current != null, MessagingStrings.HttpContextRequired);
+
+ context = context ?? new HttpContextWrapper(HttpContext.Current);
+ var response = await authenticationRequest.GetRedirectingResponseAsync(cancellationToken);
+ response.Send(context);
+ }
+
/// <summary>
/// Gets the OpenID protocol instance for the version in a message.
/// </summary>