WCF数据服务限制返回字段的能力

时间:2014-04-14 20:21:13

标签: c# wcf security

我正在使用WCF数据服务来提供要从授权客户端使用的数据。是否可以限制返回哪些字段(或者可能使用查询拦截器删除数据)?

对于一个非常简单的例子,说我有下表:

 Id
 Name
 DateOfBirth

我通过WCF服务公开这个实体,并且它被Kendo UI网格使用。如果用户是管理员,我只希望返回DateOfBirth字段。网格配置会反映出这一点。

我可以使用Web API来投影这些结果,但我最好还是让它只与一个服务进行对话。虽然OData允许我在客户端的查询中使用$ select进行投影,但这可能允许恶意用户更改查询并获取他们不应拥有的数据。我很想知道我是否可以实际限制服务器上公开的字段而不必使用其他服务或检查$ select是否有效。

谢谢,

1 个答案:

答案 0 :(得分:1)

是的,您可以根据安全角色执行此操作。 以下是一个示例:IDataContractSurrogate