2011-12-15 9 views
2

私のASP .NET MVC 3アプリケーションでは、2つの別々のユーザーテーブル(ユーザー用と管理者用)を使用します。ASP .NET MVC 3の他のページへの管理者アクセスをブロックする方法

独立した管理者にはユーザーのページにアクセスする権限がありません(彼は自分のエリアにのみアクセスする必要があります)。どうやってやるの?

管理者の場合、私はカスタムオーソライズを使用しているため、ユーザーは管理領域にアクセスできません。

public class AdminAuthorize : AuthorizeAttribute 
    { 
     public override void OnAuthorization(AuthorizationContext filterContext) 
     { 
      UnitOfWork Unit = new UnitOfWork(); 
      string username = filterContext.HttpContext.User.Identity.Name; 
      if (!Unit.AdminSrvc.AdminAuthorize(username)) 
      { 
       filterContext.Result = new HttpUnauthorizedResult(); 
      } 
     } 
    } 

しかし、彼は認証されているため、管理者は他のページを見ることができます。どのようにして問題を解決できますか?

答えて

3

管理者にはない「ユーザー」ロールを追加するとどうなりますか?

[Authorize(Roles = "User")] 
+0

私はasp_membershipを使用しません。カスタムユーザーと管理テーブルを作成しました。 –

+0

ロールがありません。 –

+0

役割を紹介してください!これはアクセスを分離するコンセプトです。 – saintedlama

関連する問題