[英]Authorization in c# asp.net
在我的公司中,我們正在開發一個包含許多用戶的Web應用程序,所有這些用戶都將定義一個或多個角色,為此角色,我們有單獨的設置頁面,例如
如果該角色登錄后是否能夠看到此菜單,則選中左側的“訪問”復選框,因為您可以看到右側的菜單,當您展開菜單節點時,它將顯示該菜單下的子菜單,我們可以進行設置如果他可以執行“添加,刪除,編輯,查看以及從菜單隱藏子菜單”的權限
並且我們編寫了一個通用類,該類使用此表檢查用戶角色並給出結果,在每頁加載頁面時,我們將調用該類並根據結果應用設置。
例如:如果用戶登錄到母版頁,我們會在頁面加載時得到結果,並應用這樣的設置,
btnAdd.Enabled = result[0];
btnEdit.Enabled = result[1];
其中result[0]
, result[1]
是該類的返回值。
現在我的問題是,這是在asp.net中進行授權的正常方式嗎?(不僅針對頁面,而且針對頁面中的控件)
我感覺像在做像btn.Enabled = true
這樣的草率編碼。
既然我已經說完了最后的需求,那么你們都將做什么呢?
問題:
1.如果我以這種方式進行授權會有什么弊端?
2.在asp.net中進行授權以滿足我的需要的正確方法是什么(如上所述,我需要啟用,禁用控件)
謝謝...
這是非常基本的方法,這樣做無害。 在我公司的一個模塊中,我們有相同的要求,但我們以不同的方式來完成。 我們是動態生成的。
您應該考慮使用框架的功能。 .NET為您提供基於聲明的授權。 您還可以查看其他授權框架,例如XACML(可擴展訪問控制標記語言)。
XACML的好處是:
我在這里寫了一個有關相關主題的較長答案。 看一看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.