限制breeze查询返回的对象数(安全性观点)

时间:2014-03-15 08:42:56

标签: .net security breeze

假设有200个姓氏以p开头的员工记录,则以下breeze查询返回200条记录。这将占用大量带宽。我可以修改以下代码,只获取10条记录,从而节省带宽。但恶意用户可以在他的浏览器中运行以下查询来限制带宽。我正在寻找服务器端解决方案来限制前十条记录的记录。

var query = new breeze.EntityQuery()
    .from("Employees")
    .orderBy("LastName")
    .where("LastName", "startsWith", "P");

我在.NET代码中使用了BreezeController,如下所示。

[BreezeController]
public class BreezeController : ApiController
{
    readonly EFContextProvider<EmployeeDBContext>  _contextProvider = ...

    [HttpGet]
    public IQueryable<Employee>Employee()
    {
        return _contextProvider.Context.Sessions;
    }
}

1 个答案:

答案 0 :(得分:2)

您可以通过使用PageSize属性限制服务器端的最大记录来实现此目的:

  [HttpGet]
    [BreezeQueryable(PageSize=10)]
    public IQueryable<Employee>Employee()
    {
        return _contextProvider.Context.Sessions;
    }