因此,我一直在为我的一群朋友开发一个小型Web应用程序(站点),并且已经意识到事情需要改变.该应用程序有两个面
面向公众的一方,为访问者和非管理员提供动态数据,以及
管理员端,管理员可以更新或创建要提供的动态数据.
这个应用程序从单个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属性).
至于将视图放在不同的文件夹中,我可以看到它在理论上是如何工作的.但是控制器(理论上没有任何授权属性)是否仍然执行到视图返回的程度?然后我会想要重定向或错误.无论哪种方式,如果您无法访问视图,我不想执行我的控制器操作,而宁愿不执行任何内部操作预检查.