我正在開發Web服務,該服務將爲具有相同數據結構的單獨組織提供服務。我正在尋找更安全的方式來保持許多組織的數據分開並避免insecure direct object references。實體框架中的用戶/組織上下文限制
我可以在接下來的方式實現:每個DB查詢
通行證用戶ID信息(得到這個用戶,檢查請求的資源與某些組織等的組織)。
爲每個組織創建單獨的數據庫實例,並在會話初始化期間提供特定組織的連接字符串。
第一種方式看起來有點無聊,需要額外關注每個請求。很容易錯過驗證,一些用戶可以通過在自己的請求中傳遞隨機ID來探索其他組織的數據。
第二種方式消除了關於額外過濾的所有問題。但我打算使用雲數據庫,每個新實例都需要額外付款,所以我想避免這種情況。
是否有可能以其他方式維護實體框架上下文?
將組織ID作爲分區鍵存儲您的記錄。所以你可以用它來分類組織。 – Aravind
根據您使用的SQL Server版本,查看行級安全性https://msdn.microsoft.com/en-us/library/dn765131.aspx,特別是使用EF的示例https://azure.microsoft.com/ en-us/documentation/articles/web-sites-dotnet-entity-framework-row-level-security/ – Macilquham
@Macilquham你的評論是我的問題的答案。 RLS是我的項目的解決方案。 – RredCat