2010-12-17 26 views
0

我有一个名为admin的目录。 此目录没有物理路径,因为它被硬编码为我的管理区域的前缀。ASP.NET MVC2拒绝用IIS 7访问控制器?

如何使用标准认证来保护此路径? 我希望只有用户Admin可以登录到该区域。 但主页面需要为每个用户提供。

回答

4

如果你使用任何的内置认证变种:

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

编辑

要限制特定用户:

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

EDIT2

是的,你可以,但它是一种黑客。创建自己的课程并从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中。

+0

是否可以根据路线或基于特定路径对特定用户进行限制? 在不想忘记这些旗帜之一,赤裸裸的。 – Chris 2010-12-17 11:46:59

+0

增加了另一个更新描述如何。 – jgauffin 2010-12-17 13:13:06