簡體   English   中英

您將如何在單個ASP.Net MVC Web應用程序中構建訪問者和管理員功能?

[英]How would you architect visitor and admin functions in a single ASP.Net MVC web application?

因此,我一直在為我的一群朋友開發一個小型Web應用程序(站點),並且已經意識到事情需要改變。 該應用程序有兩個面

  1. 面向公眾的一方,為訪問者和非管理員提供動態數據,以及
  2. 管理員端,管理員可以更新或創建要提供的動態數據。

這個應用程序從單個webforms項目開始,由單獨的頁面和文件夾的web.config安全性划分。 然后它發展成獨立的項目(MVC管理員端和webforms前端)。 由於部署問題,我后來不得不把它帶到今天的位置,一個混合了MVC(管理員)和webforms(公共)的單一網絡應用程序。

現在我正在考慮將其遷移到單個MVC項目。 我希望通過像/ Admin這樣的URL來保持我的管理功能不受我的公眾對待,我不知道該怎么做。 我已經閱讀了很多關於將控制器分組到模塊中的主題,但我不確定這是否正確。

  • 我應該只是創建與其他公共應用程序內聯的管理功能,並確定用戶是否已登錄?
  • 或者我應該創建與公共控制器分開的管理控制器(EventAdminController vs CalendarController)?
  • 其他人做了什么?

歡迎提出建議,謝謝stackoverflow。


是的我正在使用Microsoft的ASP.Net MVC框架。 Darryl,您是說要將我的視圖放在Admin文件夾中並使用web.config保護它(檢查安全性和角色)或將我的控制器放在Admin文件夾中?

我的假設是你說要將控制器放在一個Admin文件夾中,比如在控制器下。 這仍然意味着/ Controllers中的HomeController與/ Controllers / Admin中的HomeAdminController不同。 在這種情況下,您可以為每個路由配置特定的路由,但我不知道如何簡單地將控制器放在不同的文件夾中將保護它們(除非在操作上使用Authorize屬性)。

至於將視圖放在不同的文件夾中,我可以看到它在理論上是如何工作的。 但是控制器(理論上沒有任何授權屬性)是否仍然執行到視圖返回的程度? 然后我會想要重定向或錯誤。 無論哪種方式,如果您無法訪問視圖,我不想執行我的控制器操作,而寧願不執行任何內部操作預檢查。

我們有一個類似的問題,我們正在創建一個非常大的ASP.NET MVC應用程序,並將功能分離到我們使用的過程非常類似於Phil Haack的這篇文章 通過創建區域,您可以為每個區域創建唯一的控制器名稱,而不是整個應用程序,您可以更輕松地分離模塊,並且可以共享身份驗證和基本的常用功能。

在我正在研究的MVC項目中,我將所有管理員的東西放在一個管理文件夾中。 要查看admin文件夾,您必須進行身份驗證並使用正確的角色。 我的控制器往往非常小,大多數邏輯都在控制器使用的業務層中。

暫無
暫無

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

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