ASP.NET 4.x Web Api Odata v4 backend modify query 修改查询
2023-09-27 14:23:56 时间
有时候我们会想给予权限添加 filter 到查询上.
比如
会员和管理员都使用了
/api/products 作为 product 查询
但是会员不应该可以看见还没有上架的货品
/api/products?$filter=onMarket eq true 才是正确的
但是我们当然不可能把这个 $filter 交给前端去限制,因为这不安全嘛.
可惜的是 Web Api 并没有提供比较上层的接口去实现这个方法.
我们有好些方法可以完成上面这个事情
比如在 controller return if(member) db.products.where(p => p.onMarket == true);
但是这个无法满足 expand + filter 的场景
所以最直观的做法就是, 修改请求的 query, 通过后端添加上 $filter 进去。这样就符合我们的预期了.
refer :
https://stackoverflow.com/questions/33660648/odata-v4-modify-filter-on-server-side
https://stackoverflow.com/questions/33126251/webapi-odata-pre-filtering-expand-queries
https://blogs.msdn.microsoft.com/odatateam/2014/07/04/tutorial-sample-using-odatauriparser-for-odata-v4/
相关文章
- 学习ASP.NET Core Blazor编程系列十五——查询
- Media Formatters in ASP.NET Web API 2
- OAuth Implementation for ASP.NET Web API using Microsoft Owin.
- ErrorHandling in asp.net web api
- Routing and Action Selection in ASP.NET Web API
- asp.net web api history and how does it work?
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
- int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件
- Self-Host c#学习笔记之Application.DoEvents应用 不用IIS也能執行ASP.NET Web API
- ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成
- ASP.NET MVC5 实现基于Quartz.NET任务调度
- Mac OS 环境下 安装 Asp.Net及使用Yeoman 创建Asp.Net 项目
- 在做httpModules测试的时候出现“HTTP Error 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。”
- ASP.NET Web API中把分页信息放Header中返回给前端
- OData查询ASP.NET Web API全攻略
- ASP.NET Web API实践系列11,如何设计出优秀的API
- ASP.NET Web API实践系列02,在MVC4下的一个实例, 包含EF Code First,依赖注入, Bootstrap等
- 在docker中运行ASP.NET Core Web API应用程序
- 《ASP.NET 开发从入门到精通》----1.2 Web技术简介
- 《精通 ASP.NET MVC 5》----1.2 当今的Web开发
- 《ASP.NET MVC 4 实战》---- 1.4 小结
- 基于ASP.NET+SQL Server的网站登录注册功能设计与实现【100010308】
- ASP.NET Core 1.0开发Web API程序
- ASP.NET Web API 通过Authentication特性来实现身份认证
- 动态生成web表-asp.net table
- 五、ASP.NET Core 在 Swagger UI 中显示Controller描述
- FullCalendar – jQuery Event Calendar in ASP.NET
- ASP.NET 管道事件与HttpModule, HttpHandler简单理解 -摘自网络
- ASP.NET Web Pages - 添加 Razor 代码