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
,