Comments 2
Слишком много кода, условий , инициализации , типизации под схемы. В отличии от 1 метода в 5 строк кода мидлвара с чеком например в редис
Здесь много кода даёт весомый профит:
Регистрируется как схема аутентификации в стандартном механизме аутентификации ASP.NET
Подключение аутентификации очевидное, всем понятное и единое (UseAuthentication)
Теперь можно использовать в различных политиках авторизации
Теперь можно использовать разную аутентификацию/авторизацию для разных методов, групп методов декларативно
Используется механизм принципала (HttpContext.User), и можно насыщать клеймами для разных ключей раздавать разные роли, и что угодно
Всё это теперь стандартно расширяемое и можно комбинировать.
В целом да, можно сделать самое простое решение в 5 строчек, но это не значит, что так будет хорошо. Тут 5 строчек, там 5 строчек, и на выходе получается вещь в себе, комбайн, который просто надо знать как работает до каждой косточки, и допиливать под каждый чих. Если придёт новый человек на проект, он аутентификацию будет искать там, где она обычно реализуется стандартно, а не в кастомных миддлварях.
Аутентификация/авторизация это про безопасность, и там экономить на строчках кода не желательно. Может выйти боком.
API Key Authentication в ASP.NET Core Web Api