Exemplo n.º 1
0
        public Task HandleAuthNFailed(AccessDeniedContext context)
        {
            this.logger.LogError(EventIDs.ExternalAuthNAccessDenied, context.Result?.Failure, LogMessages.AuthNAccessDenied);
            context.HandleResponse();
            context.Response.Redirect($"/Home/AuthNError?messageid={(int)AuthNFailureMessageID.ExternalAuthNProviderDenied}");

            return(Task.CompletedTask);
        }
        public static Task HandleAccessDenied(this AccessDeniedContext context)
        {
            Log.Error(
                "External authentication access denied. {Scheme}",
                context.Scheme.Name);

            context.Response.RedirectExternalError(context.Scheme.Name, context.Properties);
            context.HandleResponse();

            return(Task.CompletedTask);
        }
    /// <summary>
    /// Derived types may override this method to handle access denied errors.
    /// </summary>
    /// <param name="properties">The <see cref="AuthenticationProperties"/>.</param>
    /// <returns>The <see cref="HandleRequestResult"/>.</returns>
    protected virtual async Task <HandleRequestResult> HandleAccessDeniedErrorAsync(AuthenticationProperties properties)
    {
        Logger.AccessDeniedError();
        var context = new AccessDeniedContext(Context, Scheme, Options)
        {
            AccessDeniedPath   = Options.AccessDeniedPath,
            Properties         = properties,
            ReturnUrl          = properties?.RedirectUri,
            ReturnUrlParameter = Options.ReturnUrlParameter
        };
        await Events.AccessDenied(context);

        if (context.Result != null)
        {
            if (context.Result.Handled)
            {
                Logger.AccessDeniedContextHandled();
            }
            else if (context.Result.Skipped)
            {
                Logger.AccessDeniedContextSkipped();
            }

            return(context.Result);
        }

        // If an access denied endpoint was specified, redirect the user agent.
        // Otherwise, invoke the RemoteFailure event for further processing.
        if (context.AccessDeniedPath.HasValue)
        {
            string uri = context.AccessDeniedPath;
            if (!string.IsNullOrEmpty(context.ReturnUrlParameter) && !string.IsNullOrEmpty(context.ReturnUrl))
            {
                uri = QueryHelpers.AddQueryString(uri, context.ReturnUrlParameter, context.ReturnUrl);
            }
            Response.Redirect(BuildRedirectUri(uri));

            return(HandleRequestResult.Handle());
        }

        return(HandleRequestResult.NoResult());
    }
 /// <summary>
 /// Invoked when an access denied error was returned by the remote server.
 /// </summary>
 public virtual Task AccessDenied(AccessDeniedContext context) => OnAccessDenied(context);
Exemplo n.º 5
0
 // Invoked when an access denied error was returned by the remote server.
 public override Task AccessDenied(AccessDeniedContext context)
 {
     GetLogger(context).LogCallerMethodName();
     return(base.AccessDenied(context));
 }