如何为 Breeze+WebAPI+EntityFramework 实现健壮的行过滤(按用户)



我需要对受登录用户身份限制的特定实体的所有访问权限(根据复杂的规则,他们只能看到某些实例)。在 oData $filter 中指定太难了(无论如何我都不想那样做)。我不想求助于存储库(我正在尝试为动态响应式 Web 应用程序提供功能最齐全、最灵活的数据接口)。我想在Microsoft(或 Breeze)堆栈中的某个时刻拦截请求,以修改 oData 查询或 EntityFramework 查询以注入安全筛选。我知道如何轻松地为实体的直接请求执行此操作,但我希望它在间接请求时也能工作(通过相关实体的导航属性)。想法?

作为实体导航加载结果的查询实际上只是针对每种类型的"defaultResourceName"的常规查询。 因此,只要您控制所有"默认"端点(听起来您已经在为直接请求执行此操作),您应该没问题。

如果使用实体框架 6,则可以使用 IDBCommandInterceptor 接口在最低级别截获所有数据库命令。

实体框架日志记录和截获数据库操作(EF6 及更高版本)

最新更新