我将开始将一个ASP.NET Webforms应用程序迁移到ASP.NET MVC 3。该应用程序有一个公共区域,所有用户(包括匿名用户)都可以访问,还有一些只有特定角色的已认证用户才能访问的区域。
WebForms项目组织如下:
目前授权管理是由不同子文件夹中的
在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
等下面,以使所有逻辑和标记紧密结合?