我有一个项目已经使用ASP.NET Web Forms很长一段时间了,安全方案让我们拒绝root web.config中的所有用户,并允许基于web的网站特定区域的用户.config在某些文件夹中如下:
<!-- Root Web.config -->
<authorization>
<deny users="*" />
</authorization>
<!-- ~/Admin Web.config -->
<authorization>
<allow roles="AdminRole" />
<deny users="*"/>
</authorization>
我正在将MVC4添加到这个项目中,我最初的理解是授权是通过如下属性来控制的:
[Authorize(Roles="OtherSectionRole")]
public class OtherSectionController : Controller
{ ... }
即使我使用Roles="*"
,这似乎也不起作用。只有当我删除根web.config deny *
时才能执行控制器操作。我错过了什么吗?我宁愿不删除根级别的catch-all授权以使MVC工作正常。提前谢谢!
答案 0 :(得分:0)
我们不得不做一些类似的事情,我们结束了它的头部。我的意思是我们将传统的asp.net网站作为mvc应用程序的子应用程序,而不是相反。在mvc应用程序中,我们将登录页面的配置(我们使用这些站点的成员身份)设置为旧站点中的页面,然后我们按原样离开旧站点的web.config。