Upshot/Knockout Architectural Best Practices - Каков предпочтительный метод ограничения доступа пользователей к функциям, предоставляемым через WebAPI?

Основная идея реализации одностраничного приложения с Knockout и Upshot заключается в том, что большая часть данных будет получена и отправлена ​​на сервер в формате JSON с использованием AJAX.

На сервере мы представим несколько конечных точек (используя, возможно, WebAPI и DbDataController) для ответа на запросы от Upshot. Эти конечные точки могут предоставлять общие запросы для данных, таких как списки клиентов, предыдущие заказы, информация об учетной записи и т. Д.

Очевидно, что нежелательно, чтобы один клиент мог просматривать информацию учетной записи другого клиента, предыдущие заказы или другие личные данные.

  • Какие стратегии или подходы будут использоваться для защиты запросов (и данных), которые запрашиваются из исходного (или другого механизма) на сервер? (Другими словами, как мы можем убедиться, что у пользователя есть доступ только к его собственным данным?)
  • Являются ли стратегии такими же или отличными от тех, которые используются в обычном приложении ASP.NET MVC, а именно с использованием атрибута Authorize?

Вероятно, это очень простой вопрос, но я до сих пор не понимаю всех различий между контроллерами WebAPI и обычно контроллерами ASP.NET MVC.

Спасибо за помощь!

1 ответ

Решение

Пользовательский атрибут авторизации является одним из возможных способов реализации этого требования. Единственное отличие от стандартных контроллеров ASP.NET MVC заключается в том, что System.Web.Http.AuthorizeAttribute вместо System.Web.Mvc.AuthorizeAttribute,

Другие вопросы по тегам