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);
// 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)); }