Должен ли веб-API возвращать ошибки состояния клиентским приложениям? - PullRequest
0 голосов
/ 01 декабря 2018

См. Код ниже:

public async Task<List<Person>> GetAllPeople()
        {
            var uri = API.People.GetAllPeople(_remoteServiceBaseUrl);
            try
            {
                var responseString = await _httpClient.GetStringAsync(uri);
                var response = JsonConvert.DeserializeObject<List<Person>>(responseString);
                return response;
            }
            catch (Exception e)
            {
                //Redirect to error webpage
            }

        }

Я использую Identity Server 4 для средств аутентификации и авторизации в веб-приложении и веб-интерфейсе.

Скажем, веб-API требует администраторовтолько если пользователь, вызывающий веб-интерфейс API, не является администратором, то вызывающая MVC перехватывает исключение HttpRequestException.Как этот сценарий должен быть обработан?Достаточно ли просто поместить атрибут Authorizer Authorize в метод MVC (GetAllPeople) и забыть его, или существует более элегантный способ сделать это, например, удалить попытку try?

1 Ответ

0 голосов
/ 01 декабря 2018

Не удобно перенаправлять пользователя на страницу ошибки в каждом методе.Вы можете добавить промежуточное программное обеспечение обработчика исключений в конвейер и настроить его так, чтобы он перехватывал ошибки, регистрировал их и отображал страницу ошибок по умолчанию.Прочитайте это для более подробной информации:

Как для васГлавный вопрос - пользователю AuthorizeAttribute будет достаточно, если обработка ошибок по умолчанию настроена правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...