Asp.net mvc 3 ASP.NET MVC 3区域和web.config中的多重身份验证
我一直在尝试关注此博客,以使以下领域发挥作用: 在博客文章中,它标识了每个区域设置身份验证的能力,例如:Asp.net mvc 3 ASP.NET MVC 3区域和web.config中的多重身份验证,asp.net-mvc-3,authentication,asp.net-mvc-3-areas,Asp.net Mvc 3,Authentication,Asp.net Mvc 3 Areas,我一直在尝试关注此博客,以使以下领域发挥作用: 在博客文章中,它标识了每个区域设置身份验证的能力,例如: <location path="Area1"> <system.web> <authentication mode="Windows" /> <authorization> <allow roles="role1,role2"/> <deny users="*"/> </aut
<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元素中设置具有身份验证元素的区域吗?根据我对ASP.NET MVC的了解,设置授权规则时最好将[authorization]属性应用于各个控制器,因为考虑到路由系统的工作方式,这样更安全、更充分。您好,你找到办法让它工作了吗?请把答案贴在这里好吗?谢谢,我没有按照博客上的建议去做。我的临时解决方案是将web应用程序分成两个项目,每个认证类型一个。虽然我尽可能多地进入了普通项目,但最终还是出现了一些重复的代码和配置,这并不理想。不久之后,由于其他原因,该项目被放弃,因此我从未重新讨论过该问题。这不会改变身份验证机制,只是授权-即,此操作/控制器要求这些角色/用户具有经过身份验证的访问权限