.Net MVC WebAPI: создание некоторых методов «только для администратора»?

#asp.net-mvc #asp.net-web-api

#asp.net-mvc #asp.net-web-api

Вопрос:

.Net 4.6.1

Я все еще новичок.Net и MVC. Пробую свои силы в создании API, а затем каким на самом деле будет приложение javascript, которое будет использовать API. У меня есть тысяча вопросов, но я сосредоточусь на одной области для этого. В коде API я вижу методы, которые поддерживают операции CRUD. Я хочу, чтобы методы API, доступные только для чтения, были открыты для всего мира, но для методов редактирования требуется авторизация.

Есть ли здесь лучшая практика? Должен ли я создать два API? Один для «общедоступных» действий чтения, а другой для операций администратора? Могу ли я сохранить один API и заставить действия редактирования требовать авторизации? Я видел обсуждение использования ключей API — возможно, у вас есть ключи API для методов администратора?

Ответ №1:

Я бы рекомендовал прочитать эти статьи в качестве отправной точки (и некоторые другие статьи в том же разделе!):
Фильтры аутентификации в ASP.NET Web API 2
Аутентификация и авторизация в ASP.NET Веб — API

Вы можете включить или отключить аутентификацию для web API практически на любом уровне.
Глобально, для каждого контроллера или для каждого метода действия.
Вы также можете что-то переопределить, поэтому, если вы включите его глобально, вы можете отключить его для определенного контроллера или метода.

Итак, чтобы ответить на часть вашего вопроса, я не вижу необходимости создавать два API, но связанные статьи помогут.