2011-04-23 79 views
0

可以使用哪種設計方法,已經存在或用於實現MVC Web應用程序中的安全系統的新方法?MVC應用程序中的安全系統設計

可能存在模式,最佳實踐,例如,在一些流行語言中,例如Java,.Net還是其他? 在哪個層面實施它更好:模型或控制器或它們之間的東西?

我面對那個原始的方法會導致在許多控制器或模型之間傳播安全檢查,這取決於實現,與代碼級別混合。 但是,以何種方式更好地設計安全性並不明顯。

我有一個MVC應用程序。 我需要靈活的訪問權限制度。 我有類別和實體的分類層次。 某些用戶可以編輯/查看/添加/刪除一組類別,另一用戶 - 其他類別。 還需要取決於用戶角色模型的某些字段不應從數據庫中檢索(空值應返回) 管理員應該能夠分配不同的訪問權限。

回答

1

您應該使用.Net的內置會員供應商。默認情況下,新的MVC 3 Internet應用程序Visual Studio項目模板將爲您提供基本的登錄代碼。點擊Visual Studio中的'管理'您的網站按鈕將爲您提供網頁界面來管理用戶和角色。創建您的用戶/角色,然後在Controller類定義或方法定義上定義[Authorize(Roles =「Admin,Users」)]]。不要像在Asp.Net Web Form應用程序中那樣定義URL訪問,因爲有多個URL可以映射到一個地方。改用Authorize屬性。

這裏還檢查我的迴應: What features do I need to have before I open an ASP.Net app onto the internet?

除了確保你在你的視圖使用Html.AntoForgeryToken並在您的[HttpPost]控制器方法[ValidateAntiForgeryToken(即你回發到任何方法)