混合网络形式的授权和; mvc 4 app

时间:2012-09-22 21:16:53

标签: c# asp.net asp.net-mvc authorization asp.net-mvc-4

我有一个项目已经使用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工作正常。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我们不得不做一些类似的事情,我们结束了它的头部。我的意思是我们将传统的asp.net网站作为mvc应用程序的子应用程序,而不是相反。在mvc应用程序中,我们将登录页面的配置(我们使用这些站点的成员身份)设置为旧站点中的页面,然后我们按原样离开旧站点的web.config。