サイトマップリンクの一部を非表示にする必要があるタスクが発生しています。たとえば、このサイトマップメニューでは次のようになります。
レストラン
レストランのレビュー
レストランを追加
イベント
イベントの作成
イベントに参加する
管理者
ユーザーの管理
管理ノードは、すべてのユーザーに表示されるべきではありません。
通常のMVCロールセキュリティモデルは使用していません。私たちが持っているのは、すべてのコントローラーの先頭にあるifステートメントです。ユーザーにアクセス権がない場合は、ユーザーを別のページにリダイレクトします。次に例を示します。
public ActionResult Index(string view)
{
if (dao.HasPermission(dao.screenLoanDialogue, dao.PermissionsFull) == false)
return RedirectToAction("AccessDenied", "Home");
//rest of code here
}
ユーザーがアクセスできないノードをサイトマップに表示しないようにするにはどうすればよいですか?私が試すことができる解決策の1つは、すべてのマップサイトをコントローラーに渡し、表示するノードをコントローラーに処理させることです。しかし、ノードが収集されている場所が見つかりませんでした。
役割とHTMLでのページの記述はオプションではありません。