2014-01-25 43 views
3

如何限制訪問WebAPI OData中的數據?限制對特定關係的訪問OData .NET WebAPI

可以說我有一個Youtube頻道,有視頻。有些視頻是私人的,有些僅限於特定用戶,有些則是公開的。 如何才能確保只有允許的用戶才能獲取數據?

特別是當你想限制對導航屬性等的訪問時。

我可能誤會的OData的一些基本原則。

基本上我尋找一些成熟模式來限制對特定數據的特定角色和用戶,和序列化數據。

回答

2

處理這種常見的方法是使用一個Query Interceptor。當您向您的服務中的特定實體請求數據時,WCF數據服務將會看到爲該特定實體集定義了一個查詢攔截器。您的攔截器是一個表達式,用於過濾和/或限制返回的實體集中的值。

也有Change Interceptors可火了修改操作,太。

希望這會有所幫助。

+1

您是否還有.net Web Api的查詢攔截器? –

+0

如果使用Web API EntitySetController或ODataController,您可以覆蓋REST操作(GET/POST)等,並在那裏添加過濾器邏輯 – eoghank