Централизованная обработка ошибок. Метод расширения UseExceptionHandler()

Обработка исключений позволяет нам избежать аварийного завершения работы приложения. Для обработки исключений в приложениях C#, обычно, используются блоки try...catch с ключевым словом final для того, чтобы очистить ресурсы приложения. Это стандартная практика обработки исключений, которая может также применяться и в приложениях ASP.NET Core Web API. Однако, платформа ASP.NET Core позволяет извлечь всю логику обработки исключений и сосредоточить её в одном централизованном месте, избежав тем самым использования блоков try…catch в действиях контроллера и обеспечить, при необходимости, единый формат сообщений о возникших исключительных ситуациях в приложении. Такой подход к обработке исключений в приложениях ASP.NET Core называется Global Error Handling – глобальная обработка ошибок.

Читать далее

Обновление JWT-токена

Многие современные приложения Web API, использующие для аутентификации пользователя JWT-токены, во-первых, ограничивают время жизни токена, а, во-вторых, позволяют пользователю обновить токен без повторного ввода учётных данных. На данный момент наше приложение обладает только одной из этих функций – мы ограничиваем время жизни токена, однако не даем пользователю возможности обновить его.

Читать далее

Авторизация пользователей по ролям

На данный момент у нас в проекте имеется контроллер для работы с учётными записями пользователей и их аутентификации, а также контроллер WeatherForecastController, который создается по умолчанию в шаблонном проекте ASP.NET Core Web API. Допустим, мы хотим позволить получать данные о прогнозе погоду только авторизованным пользователям. В ASP.NET Core сделать это достаточно просто, используя специальный атрибут [Authorize].

Читать далее

ASP.NET Core Identity

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

Читать далее

Валидация модели. Атрибуты валидации

Валидация модели, то есть её проверка на допустимость значений, содержащихся в ней – это, строго говоря, механизм самой платформы .NET. Однако, в ASP.NET Core этот механизм расширен и дополнен. Поэтому, не лишним будет затронуть и вопросы связанные с валидацией модели в этой части.

Читать далее

Использование параметров запроса для привязки модели. Фильтрация результатов (передача массивов)

Фильтрация данных, наряду с постраничным выводом результатов, позволяет ускорить работу приложения. Однако, прежде чем мы перейдем к реализации фильтрации в нашем приложении, стоит рассмотреть вопрос: чем отличается фильтрация от поиска?

Читать далее

Использование параметров запроса для привязки модели. Постраничный вывод результатов

В предыдущей части были рассмотрены общие моменты, касающиеся передачи данных в контроллеры через параметры запросов. Однако, как говорят, теория без практики мертва, практика без теории слепа. В этой части и далее мы рассмотрим несколько практических примеров использования параметров запросов в приложениях Web API и начнем с одного из важнейших вопросов — постраничного вывода результатов.

Читать далее