2008-11-19 27 views
2

我正在使用存儲庫模式來使用NHibernate查詢我們的數據庫。這使得它很容易做的事情一樣:如何在.NET中使用NHibernate時處理授權

公共牛逼GetById(INT ID){...}

但是,這沒有太大的幫助,當有人開始用查詢字符串碴,看看他們AREN東西」允許。

向化合物它,一些對象是應當執行所述授權父對象的深度嵌套的兒童。

例如博客 - >作者 - >後 - >註釋。在這個人爲設計的例子中,我們希望作者能夠編輯他們自己的帖子和關於這些帖子的評論,但不能查看或編輯其他作者的帖子。檢查屬於作者的帖子很容易,確保評論屬於作者更難一點。我們有一些更深層次的實例。

所以......我們該怎麼做授權(在模型或資料庫)?

回答

1

您可以實現修飾模式 - 我相信你正在使用DP/IOC容器注入你的IRepositories?

你會創建一個ISecureRepository來檢查的呼籲是有效的特定用戶/請求類型,然後通過回調到IRepository。這也給你調用該方法,然後檢查返回值類型你會再設置你的IoC使用一個ISecureRepository周圍IRepository包裹的能力...

...

聽起來那麼簡單...