2010-12-17 61 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