«Безопасность» - это огромная, растянутая тема, о которой никогда не бывает достаточно. Надеюсь, на этом уберу.
Что касается ограничения максимальных записей, я бы использовал параметр [Queryable]
атрибута PageSize
. Атрибут [BreezeQueryable]
наследует эту опцию, чтобы вы могли написать свой Web API метод контроллера или поддерживающий метод хранилища, как это:
[HttpGet]
[BreezeQueryable(PageSize=100)] // returns a maximum of 100 orders
public IQueryable Orders() {
return ContextProvider.Context.Orders;
}
Вы также мог бы быть в состоянии ограничить результаты, добавив сверху запрос внутри метода.
[HttpGet]
public IQueryable Orders() {
return ContextProvider.Context.Orders.take(100);
}
Однако некоторые условия запроса могут не пройти. Сначала попробуйте.
Я вижу, что существует некоторое совпадение между odata и breeze, и у меня есть ОЧЕНЬ трудное время, решающее, что использовать EFContextProvider или EntitySetController. Я хочу, чтобы иметь возможность использовать api с любым клиентом. –
Я думаю, вы имеете в виду перекрытие между улучшениями Breeze.NET стандартным контроллером веб-API и контроллером OData веб-API ASP.NET, EntitySetController. Оба являются предложениями веб-API на стороне сервера. Собственный бриз - это чисто клиентская сторона. Я не могу подчеркнуть эту разницу. Сказав это, я не уверен, как вы выберете. Лично я чувствую себя намного более уверенно со стандартными контроллерами Web API, которые более легко доступны для более широкого круга клиентов. С EntitySetController вы в значительной степени ограничены клиентами OData. ИМО. – Ward