13

我一直在尝试关注此博客以使区域正常工作:

http://mstechkb.blogspot.com/2010/10/areas-in-aspnet-mvc-20.html

在博客文章中,它确定了为每个区域设置身份验证的能力,例如:

<location path="Area1">
  <system.web>
  <authentication mode="Windows" />
  <authorization> 
    <allow roles="role1,role2"/>
    <deny users="*"/> 
  </authorization> 
</system.web>
</location>

但是,当我尝试在 Visual Studio 2010 的新项目中创建它时,运行时出现以下错误:

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。

据我所知,这是因为您无法指定身份验证元素,除非它位于顶级 web.config 中。

所以可以按照博文所说的去做吗?您可以在 web.config 的 Location 元素中包含带有身份验证元素的区域吗?

4

1 回答 1

-2

根据我对 ASP.NET MVC 的了解,最好使用应用于各个控制器的 [Authorization] 属性来设置授权规则,因为考虑到路由系统的工作方式,它更安全、更充分。

于 2011-11-18T03:53:12.797 回答