2010-05-19 99 views
3

我已經實現了一個小的訂單和庫存控制系統(用於內部使用)與MVC 2框架。現在我的朋友們,他們希望有一個網站爲他們的客戶展示現有產品。我知道,我知道他們會問我有一天會這樣做。所以在開始時,我已經使控制器名稱以「Admin」開頭。但是現在我不確定實施他們的要求的最佳方式。你能勸我嗎?需要一個Asp.net MVC應用程序解決方案

1.出於安全原因,我不允許匿名用戶從CSS和圖像文件中訪問網站的一部分。我的問題是控制器的名稱不是文件夾的名稱,我怎麼能設置它?

<!--Only allow the anonymous users to access the content folder--> 
<location path="Content"> 
<system.web> 
<authorization> 
<allow users="*"/> 
</authorization> 
</system.web> 
</location> 

2.我是否打算將管理部分放入「區域」,並且這將是一個好方法嗎?任何人都可以提供一些建議。

非常感謝。

controller view

回答

2
  1. 如果內置Authorize過濾器不適合你的工作,你總是可以實現自定義過濾器authorization

  2. 如果你有一個大項目(數百個視圖),那麼是的,我認爲使用區域是一個好主意。

2

MVC使用路由來爲請求提供服務。 沒有文件夾來控制訪問權限。相反,您可以在控制器之上或操作方法之上使用屬性。

我看到你有一個基本的控制器,你可以裝飾用適當的授權屬性的基本控制器...

我不同意布歐有關地區。我認爲將網站部分分開的區域使項目結構更易於理解。它還可以讓你在他們的區域內放置路由配置,而不是讓你的global.asax中的所有東西。 我認爲這是值得的,甚至在你有很多意見之前。 Admin/Public是一個經典案例。

遵循布歐..鏈接

0

就個人而言,我想創建一個完全不同的網站來處理公共訪問。確保視圖的最佳方法是首先不要使用它。

第二種選擇是創建兩個區域,即內部和公共。您可以通過在每個區域文件夾中放置一個web.config來保護每個區域文件夾,公共區域允許匿名訪問,內部區域限制訪問登錄到您的辦公區域的人員。

第三個選項是在您的控制器方法中執行安全剔除。這需要很多工作,並且無論如何都是一個好主意,但是意識到這裏的錯誤意味着您的系統中存在漏洞。