ので、私は私のアクションメソッド私は、彼らが記事を編集できるように、管理者を認証する必要がありますが、(ここではクールな部分が来る)、私もポストの作成者ができることができるようにする必要があり、私の場合は次のケースでカスタムAuthorize属性を実装する方法は?
[Authorize(Roles="Admin")]
public ActionResult EditPosts(int id)
{
return View();
}
を持っています通常のユーザーである投稿を編集します。どうすれば投稿を作成したユーザーと管理者を除外できますが、他のユーザーは権限のないままにしておくことができますか? PostEntry IDを経路パラメータとして受け取っていますが、属性の後にも属性は定数パラメータしか受け付けません。非常に困難なもののように見える、あなたの答えは非常に高く評価されます。
:その後、
し、それを使用してコントローラのアクションを飾るに。オブジェクトを水和した後にこのロジックを含める方が良いかもしれません。それ以外の場合は、これをアスペクトとして実装すると、投稿を2回ルックアップする必要があります(承認のために1回、編集のために1回)。 –
ポイントを置くと、実際には、彼のIDがロールのエントリにあり、コントローラのロジックをやり直していれば、私は一度調べます。任意のアイデアをどのように一度だけデータベースをヒットするには? – Freeman
これについてもう少し考えてみましょう。あなたが良いORMを使用していて、認証呼び出しの前にコンテキストを設定している場合(その部分についてはわからない場合)、第1レベルのキャッシュにキャッシュする必要があります。その後、2番目の水和物のヒットのビットとして表示する必要はありません。 –