2013-02-22 57 views
0

我必須做一個項目,其中將有許多用戶將使用該應用程序。用戶可以屬於用戶,執行者或管理員。每個用戶組都有自己的權利。所有數據將被存儲在數據庫中。在課堂設計中實施權利管理

現在我正在做類設計,我不知道是否必須自己設計一個類作爲類,或者我應該只是注意用戶組,然後才拒絕或允許訪問數據庫中的CRUD操作。

什麼是實施引用用戶或組的權利的好方法?

+0

您將如何驗證您的用戶以及需要多大程度的安全性? SQL Server的內置安全性會給予更大的信心,但是如果您的應用程序無法支持它,那麼選擇會有所不同... – chrisb 2013-02-22 11:08:40

+0

我計劃使用一種預防性安全措施。像用戶不能看到他不應該訪問的按鈕。例如,管理員擁有可以讓他們添加用戶的控件,高管和用戶都不會。我計劃的是,當表單加載時,它會檢查坐在它前面的用戶的權限,然後根據用戶組生成表單。 – LeonidasFett 2013-02-22 11:23:47

+0

當然,除了你沒有任何真正的要求來強化數據庫,所以你可能還想使用任何框架 - 你使用的授權行爲並且非常努力地嘗試不要模糊它 - 它們通常很好理解,並且可能記錄得更好:) – chrisb 2013-02-22 11:29:56

回答

0

設計類可以滿足您的業務需求。我想象一些允許配置用戶屏幕的「面向UI」類。在數據庫端,我不知道「權利有用戶」還是「用戶有權利」;設計到您的商業模式。當然,你需要grunt-code來映射到數據庫中的信息。

設計權作爲一類本身或...

取決於類的複雜程度。 ...我會說UserGroup類將擁有權利List,無論是複雜的對象或枚舉的集合。如果你所有的商業模式都需要問「鮑勃有什麼權利?」那麼枚舉列表對我來說聽起來不錯。一個枚舉的替代方案是基類,每個權利都被分類。爲這樣一個微不足道的工作,恕我直言,太多的工作。

如果您不確定要走哪條路,請製作一個封裝了權限列表的單獨類。如果/從一個枚舉類變爲Right類,後退和第四個,它暴露給其他應用程序的「API」將不會改變。