#asp.net-core #asp.net-web-api
#asp.net-core #asp.net-web-api
Вопрос:
Я хочу создать фильтр для исключения несанкционированного доступа, я не знаю, почему это не работает в моем основном фильтре, сначала я пробую это в моем ApiExceptionFilter: ExceptionFilterAttribute, но здесь не сработало
private void HandleUnauthorizedAccessException(ExceptionContext context)
{
var exception = context.Exception as UnauthorizedAccessException;
var details = new ProblemDetails
{
Status = StatusCodes.Status401Unauthorized,
Title = "nauthorized exception",
Detail = exception.Message
};
context.Result = new ObjectResult(details)
{
StatusCode = StatusCodes.Status401Unauthorized
};
context.ExceptionHandled = true;
}
все остальные мои исключения работают здесь вместо этого
после этого я пытаюсь получить это здесь, но снова безуспешно :
public class HttpResponseExceptionFilter : IActionFilter, IOrderedFilter
{
public int Order { get; set; } = int.MaxValue - 10;
public void OnActionExecuting(ActionExecutingContext context) { }
public void OnActionExecuted(ActionExecutedContext context)
{
if (context.Exception is HttpResponseException exception)
{
context.Result = new ObjectResult(exception.Value)
{
StatusCode = exception.Status,
};
context.ExceptionHandled = true;
}
}
}
Я не знаю, почему только это исключение не сработало после отправки запроса в api: (
Комментарии:
1. Не могли бы вы подробнее разъяснить вопрос?
2. @FeiHan Я хочу создать фильтр авторизации, чтобы генерировать исключение, когда пользователь не авторизован, и возвращать пользовательский ответ клиенту