Я начинаю миграцию приложения ASP.NET Webforms на ASP.NET MVC 3. Приложение имеет общедоступную область, доступную для всех пользователей (также анонимных пользователей), и несколько областей, которые доступны только аутентифицированным пользователям, которые в конкретной роли.
Проект WebForms организован так:
Root folder -> contains all public pages
|
--- Private subfolder -> contains a few pages for ALL authenticated users
|
--- Customers subfolder -> contains pages for users in role "Customer"
--- Suppliers subfolder -> contains pages for users in role "Supplier"
--- Internals subfolder -> contains pages for users in role "Internal"
|
--- Admins subfolder -> contains pages for users in role "Admin"
etc.
В настоящее время авторизация управляется web.config
файлами, которые находятся в разных подпапках. Например, подпапка Customers
содержит следующее web.config
:
<configuration>
<system.web>
<authorization>
<allow roles="Customer" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
В ASP.NET Webforms больше конфигурации не требуется. Это разрешение применяется ко всем страницам в подпапке Customers
.
Каков наилучший способ переноса этой структуры в ASP.NET MVC 3? Или более конкретно:
- Такие
web.config
файлы с настройками авторизации все еще работают в MVC на основе папок?
- Если нет, есть ли другой способ применить требования авторизации ко всем страницам в папке?
- Можно ли по-прежнему организовывать различные области в отдельных папках, особенно можно ли поместить отдельные подпапки
Controllers
, Views
, Models
в каждую из папок Customers
, Suppliers
и т. Д., Чтобы сохранить всю логику и разметка близко друг к другу?
Спасибо за отзыв!