2009-04-24 9 views
0

私は、ASP.NET MVCを使用してWebフォーラムを設計しようとしています。 しかし、ユーザーロールベースのコンテンツは、アクセスロールによって出力が異なるため、単に[Authorize]属性を使用する場合よりも大きな課題になります。データレイヤーからの承認ベースのコンテンツ

したがって、モデレーター役割のユーザーメンバーは秘密サブボードを見ることができるはずですが、通常のメンバー役割のユーザー部分は使用しないでください。

これは私のデータレイヤーを正しく設計する必要がありますが、実際にMVCパターンに従い、コントローラでフィルタリングを適用したいので、これを行う方法が私に鳴ります。しかし、問題はネストされたコンテンツ関係。

IListのCategory.Forumが特定のユーザーに表示されないようにするには、Category.Forumをフェッチするために何らかの方法で単一のデータベースクエリを使用する必要があります。一方、適切なデータレイヤーは、 CategoryDAとForumDAの2つのDAモジュールに変換します。

もう1つのことは、ユーザーが複数の役割を持つことができるため、メンバーシップシステムを介してユーザー役割のアプリケーション全体です。

説明するのは少し難しいですが、多くの人が一般的な掲示板に精通していて、データアクセスレイヤを正しく設計する方法がわかります。

感謝:)

答えて

0

だけではなく、基本的な[承認]属性を使用しての認証を行うために、独自のアクションフィルタを作成するには、おそらく簡単です。このように:

public class CheckPermission : ActionFilterAttribute 
{ 
    public override void OnActionExecuting 
     (ActionExecutingContext filterContext) 
    { 
     try 
     { 
      // do your security checks here 
      // if NOT allow, throw NOTAUTHORIZED exception 
     } 
     catch (Exception ex) 
     { 
      // handle how to redirect - auto logout, etc 
     } 
     finally 
     { 
      base.OnActionExecuting(filterContext); 
     } 
    } 
} 
関連する問題