限制对特定关系OData .NET WebAPI的访问

时间:2014-01-25 12:47:20

标签: c# asp.net security asp.net-web-api odata

如何在WebAPI OData中限制对数据的访问?

假设我有一个有视频的Youtube频道。有些视频是私有的,有些视频仅限于特定用户,有些视频是公开的。 如何才能确保只允许用户获取数据?

特别是当想要限制对导航属性等的访问时。

我可能误解了OData的一些基本原则。

基本上我正在寻找一些经过验证的模式来限制对特定角色和用户的特定数据的访问,以及序列化数据。

1 个答案:

答案 0 :(得分:2)

处理此问题的常用方法是使用Query Interceptor。当您从服务中的特定实体集请求数据时,WCF数据服务将看到为该特定实体集定义了查询拦截器。您的拦截器是一个表达式,用于过滤掉和/或限制返回的实体集中的值。

还有Change Interceptors也可以触发修改操作。

希望这有帮助。