protected override async Task ApplyResponseChallengeAsync()
        {
            if (Response.StatusCode != 401)
            {
                return;
            }

            AuthenticationResponseChallenge challenge = Helper.LookupChallenge(Options.AuthenticationType, Options.AuthenticationMode);

            if (challenge == null)
            {
                return;
            }

            AuthenticationProperties properties = challenge.Properties;

            if (string.IsNullOrEmpty(properties.RedirectUri))
            {
                properties.RedirectUri = CurrentUri;
            }

            // OAuth2 10.12 CSRF
            GenerateCorrelationId(properties);

            string state = Options.StateDataFormat.Protect(properties);

            string authorizationEndpoint =
                Options.AuthorizationEndpoint +
                "?response_type=code" +
                "&resource=" + Uri.EscapeDataString(Options.Resource) +
                "&client_id=" + Uri.EscapeDataString(Options.ClientId) +
                "&redirect_uri=" + Uri.EscapeDataString(BuildRedirectUri(Options.CallbackPath)) +
                "&state=" + Uri.EscapeDataString(state);

            var redirectContext = new AdfsRedirectToAuthorizationContext(
                Context, Options,
                properties, authorizationEndpoint);

            await Options.Events.RedirectToAuthorizationEndpoint(redirectContext).ConfigureAwait(false);
        }
 public Task RedirectToAuthorizationEndpoint(AdfsRedirectToAuthorizationContext context)
 {
     return OnRedirectToAuthorizationEndpoint(context);
 }
 public Task RedirectToAuthorizationEndpoint(AdfsRedirectToAuthorizationContext context)
 {
     return(OnRedirectToAuthorizationEndpoint(context));
 }