diff options
Diffstat (limited to 'src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs')
-rw-r--r-- | src/DotNetOpenAuth.OpenId/OpenId/OpenIdUtilities.cs | 12 |
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> |