我已经使用MVC 2框架实现了一个小型订购和库存控制系统(用于内部使用)。现在我的朋友,他们希望有一个网站,为他们的客户展示现有的产品。我知道,我知道他们有一天会要求我这样做。所以在开始时,我已经将控制器名称设置为以“Admin”开头。但现在我不确定实施其要求的最佳方式。你能告诉我吗?
1.出于安全原因,我不允许匿名用户从CSS和图像文件中访问网站。我的问题是控制器的名称不是文件夹的名称,我怎么能设置它?
<!--Only allow the anonymous users to access the content folder-->
<location path="Content">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
2.我打算把管理部门放到一个“区域”,这将是一个很好的方式吗?任何人都可以给我一些建议。
非常感谢。
答案 0 :(得分:2)
如果内置Authorize过滤器不适合您,您始终可以实施自定义authorization过滤器。
如果你有一个大项目(数百个观点),那么是的,我认为使用区域是一个好主意。
答案 1 :(得分:2)
MVC使用路由来提供请求。 没有用于控制访问权限的文件夹。相反,您可以在控制器之上或在操作方法之上使用属性。
我看到你有一个基本控制器,你可以使用适当的Authorize属性来装饰你的基本控制器......
我不同意有关地区的Buu。我认为区分网站部分的区域使项目结构更容易理解。它还允许您将路由配置放在其区域内,而不是将所有内容放在global.asax中。 我认为甚至在你有很多观点之前它是值得的。 Admin / Public是一个经典案例。
点击Buu的链接..
答案 2 :(得分:0)
就个人而言,我会创建一个完全不同的网站来处理公共访问。保护视图的最佳方法是首先不要使用它。
第二个选择是创建两个区域,内部和公共。您可以通过在每个区域文件夹中删除web.config来保护每个文件夹,在Public中允许匿名访问,以及内部限制访问登录到您办公室域的人员。
第三个选项是在控制器方法中执行安全剔除。这需要大量的工作,无论如何都是一个好主意,但是在这里意识到一个错误就意味着你的系统存在漏洞。