Я относительно новичок в ASP.NET Web API, и мне нужно ваше предложение по поводу следующей ситуации: Несколько месяцев назад я участвовал в веб-проекте, который содержал внешний интерфейс Angular 5 и использовал сервисы из интерфейса ASP.NET Web API 2. , База данных была SQL-сервером, в доступе к данным было несколько ролей, поэтому мы использовали аутентификацию на основе токенов. В последнее время мне поручено разработать веб-интерфейс, который будет представлять множество диаграмм и отчетов и объединять данные из разных источников данных. Я думаю использовать ту же инфраструктуру и структуры, что и в предыдущем проекте, однако я точно уверен в типе разрешения на использование. Доступ к большинству представлений будет доступен публично через https, однако мы предполагаем наличие некоторых представлений администратора, которые, конечно, потребуют надлежащей аутентификации. Я не совсем уверен, что будет лучшим вариантом здесь - объединение базовой / токеновой аутентификации для публичных и административных представлений соответственно или применение токенов на основе и создание публичного пользователя для доступа к публичным ресурсам. Любые предложения с благодарностью.

1
zabit 23 Сен 2019 в 15:53

2 ответа

Лучший ответ

В вашем случае я хотел бы использовать аутентификацию на основе токенов API для всех API, но какой API вы хотите получить доступ только к вам (API администратора), используйте [EnableCors (origins: "http://yoursite.com ", заголовки:" ", методы:" ")] это Над вашим Admin API и для публичного использования [EnableCors (origins: «», заголовки: «», методы: «*»)] в вашем общедоступном API. Также не забудьте установить -> Install-Package Microsoft.AspNet.WebApi.Cors и добавить config. EnableCors (); в webApiconfig в разделе регистрации.

0
shafaetjsr 25 Сен 2019 в 07:08

В вашем случае я бы разделил Admin и Public, что означает создание отдельных действий в вашем API. Таким образом, вам нужно только реализовать авторизацию для действий администратора (я бы предложил авторизацию на основе токенов). Все общедоступные материалы, которые вы можете разрешить анонимно. Я надеюсь, что это было полезно.

0
Amer Markisic 25 Сен 2019 в 06:52