【发布时间】:2015-08-10 19:57:31
【问题描述】:
我有多个角色可以访问我的 odata 服务,根据角色,我需要隐藏几列。我怎样才能做到这一点?
【问题讨论】:
-
你的代码在哪里!到目前为止你尝试过什么?
-
所以,这些是我尝试过的事情: 1. 探索了 Queryinterceptors,但它们是 wcf 而不是 webapi 的一个特性。如果我错了,请纠正我。我找不到与 webapi 相关的示例。 2.我尝试在我的控制器中获取角色并编写一个linq select语句来投影基础对象。类似: .Mydata.Select(p=>new myobject {myobject.Property1=p.property1,....}; 基于角色。但这给了我一个错误,因为我正在尝试投影现有对象。跨度>
-
您是否尝试向其中添加
.ToList().Select(...)?您经常需要从 sql 更改为实体到对象再到实体才能使投影工作。 -
ToList() 的问题在于它实现了查询并且对性能产生了影响。我查询的数据类型有数百万条记录,尽管我已经定义了页面大小。
-
也许你可以使用验证器来做到这一点? blogs.msdn.com/b/webdev/archive/2013/02/06/…。您可能能够根据您的安全规则“验证 $select、$expand 和 $filter”。不确定它的复杂程度:S