我开始将ASP.NET Webforms应用程序迁移到ASP.NET MVC 3.应用程序有一个公共区域,所有用户都可以访问该区域(匿名用户)和几个区域,这些区域只能由具有特定角色的经过身份验证的用户访问。将授权逻辑从ASP.NET Webforms迁移到ASP.NET MVC3
该项目的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 Web表单没有更多的配置即可。此授权适用于Customers
子文件夹中的所有页面。
将此结构迁移到ASP.NET MVC 3的最佳方式是什么?或更具体地说:
- 做这样的
web.config
具有授权设置的文件仍然在MVC文件夹的基础上工作? - 如果没有,是否有另一种方法来将授权要求应用于文件夹中的所有页面?
- 我还可以组织不同区域在不同的文件夹,特别是可以把我个人
Controllers
,Views
,下的每个文件夹Customers
,Suppliers
等Models
子文件夹,以保持所有的逻辑和标记并拢?
感谢您的反馈!
你可以看看http://prodinner.codeplex.com样品,以了解如何在MVC使用授权 – Omu 2011-05-08 18:27:16