2010-12-17 9 views
0

私はadminという名前のディレクトリを持っています。 管理領域のプレフィックスとしてハードコードされているため、このディレクトリへの物理パスはありません。ASP.NET MVC2はIIS 7のコントローラへのアクセスを拒否しますか?

このパスを標準認証で保護するにはどうすればよいですか? 私はそのユーザーの管理者だけがそのエリアにログインできるようにしたいと思います。 しかし、すべてのユーザーがメインページを利用できるようにする必要があります。

答えて

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

ルートに基づいて特定のパスに基づいて特定のユーザーに制限することは可能でしょうか? これらのフラグの1つを忘れて裸であることを望まない。 – Chris

+0

は、方法を説明する別のアップデートを追加しました。 – jgauffin

関連する問題