簡體   English   中英

需要幫助來保護ASP.NET Web應用程序

[英]Need help to Secure an ASP.NET Web Application

我正在開發一個內部Web應用程序(只有員工可以登錄)並需要一些幫助來找出處理單個用戶對系統權限的好方法。

系統本身位於C#/ ASP.NET(4.0 / Webforms / Forms Authentication)/ SQL Server 2008中,並且具有幾個不同的區域,這些區域具有不同的權限集。 您可以在基本的crud場景(創建,查看,更新,刪除)中考慮它,盡管這些場景適用於系統的不同方面。

(我想提一下這不是一種CMS系統,所以我不能選擇像DotNetNuke這樣的開源項目。這是從零開始開發的。如果它們可用,我可以使用開源庫。 )

為復雜系統設計用戶權限系統的好方法是什么,可能有5-6個不同的部分,每個部分包含10-15個不同的視圖/更新/刪除?

這里的目標是:

  1. 用戶(管理員)可以理解使用/設置。
  2. 易於維護代碼明智。
  3. 易於適應,因為需要新的權限(不同類型或不同的位置)。

有兩種方法可以想到:

方法1:

嘗試使用內置的ASP.NET Roles系統來定義不同的權限並從那里進行管理。 我可以構建自定義頁面來處理不同的區域並為用戶分配權限集。 我相信這也允許我默認使用當前會話對象來包含系統中用戶的所有權限。 (HttpContext.User.IsInRole()等...)。

現在,雖然我認為這種方法可行,但我不確定它是否易於維護或適應未來的需求。 看起來它是更快速的方式來實現它並且工作但不是最好的長期。

方法2:

滾我自己。 在這個場景中,我設置了數據庫表來存儲應用程序每個部分的真/假樣式權限。 然后,我將檢索該信息並將其放入會話中,並在我需要檢查某人是否有權執行某些操作時隨時訪問它。 然后我會構建自定義頁面來管理列表等。

看來這種方法可能是更易維護的長期解決方案。 它為我提供了更多的功能以及如何處理它。 但是,我基本上還在做着Roles系統在方法1中為我抽象的工作。不過我贊成這種方法。


最后,我不確定這兩種方法是否是處理此問題的最佳方法。 任何人都可以幫我解釋為什么上述任何一種都是好/壞? 或者甚至建議一個不同的替代方案來處理它的“最佳”方式實際上是。 這是我在這方面的第一個主要任務,所以我沒有太多的經驗來嘗試通過權限來“保護”這樣的應用程序。 任何和所有的幫助表示贊賞!

使用內置方法,除非您有特定的架構需要。 如果您不使用內置的實現,您可以選擇推出自己的提供程序實現,但是您應該遵循與內置系統相同的模板,因為它涵蓋了您應該考慮的許多安全警告。

甚至還有內置的配置頁面,用於快速和臟的用戶維護。

我會堅持使用內置方法,您可以隨時編寫自定義RoleProvider以匹配您的用戶群所需的角色和權限( 實現RoleProvider

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM