管理者とユーザーがいるので、「管理者」エリアと「ユーザー」エリアを作成することができます。以下で提案するのは、役割から隠したいビューがいくつかある場合のみです。管理領域では、その領域のベース コントローラに authorize 属性を追加して、管理者だけがコンテンツを更新できるようにすることができます。そうしないと、更新ボタンをロールのさまざまな表示から非表示にしたい場合に、ビューに if ステートメントが必要になり、面倒になる可能性があります。
アップデート:
以下は、エリアの概要へのリンクです。「管理者」と呼ばれるエリアを作成でき、そのエリア内に別のエリアとは別のコントローラー/ビュー/ビューモデルなどがあるため、エリアは便利です。この領域内に、コンテンツを更新するためのロジックを含めることができますが、ロールにコンテンツを更新させたくない場合は、その領域内にロジックを含めないでください。リンクが私よりもうまく説明してくれることを願っています。
プロジェクトで領域を使用するときは、すべてのコントローラーが継承するベース コントローラーを作成します。私のベースコントローラーがどのように見えるかの例は次のとおりです。
[Authorize(Roles="Admin")]
public class AdminBaseController : Controller
{
...
}
次に、この領域のすべてのコントローラーで AdminBaseController を継承し、管理者のみが Web サイトのこのセクションにアクセスできるようにします。
public class HomeController : AdminBaseController
{
...
}
http://www.dotnet-tricks.com/Tutorial/mvc/a9P1010113-MVC-Areas-with-example.html
ビューに Authorize 属性を追加します。
たとえば、管理者のみが view.cshtml ファイルを表示できるようにする場合は、コントローラー アクションで次のようにすることができます。
[Authorize(Roles="admin")]
public ActionResult View()
{
....
}
ユーザーがそのロールに属していない場合、そのビューにアクセスできます。
複数の役割の場合、次のことができます。
[Authorize(Roles="admin, user")]
public ActionResult View()
{
...
}
これにより、管理者またはユーザーであるすべてのユーザーがページを表示できるようになります。(両方の役割である必要はありません)。