ASP.NET MVC2拒绝使用IIS 7访问控制器?

时间:2010-12-17 11:32:59

标签: asp.net-mvc asp.net-mvc-2 iis-7

我有一个名为admin的目录。 此目录没有物理路径,因为它被硬编码为我的管理区域的前缀。

如何使用标准身份验证保护此路径? 我希望只有用户Admin才能登录该区域。 但主页需要为每个用户提供。

1 个答案:

答案 0 :(得分:4)

如果您使用的是任何内置身份验证变体:

[Authorize(Roles = "Administrator")]
public class AdminController : Controller
{
}

修改

限制特定用户:

[Authorize(Users = "Admin")]
public class AdminController : Controller
{
}

<强> EDIT2

是的,你可以,但它有点像 hack 。创建自己的类并从RouteBase派生它。

public class MyRoute : RouteBase
{

     public override RouteData GetRouteData(HttpContextBase context)
     {
          if (context.Request.Uri == XXX && context.User != YYYY)
              return forbiddenRoute;//redirect to forbidden page.
          else
              return null;
     }
}

然后将其添加到global.asax。