ようやく MVC 4 アプリケーションをすべて SimpleMembership でセットアップしましたが、新しい問題が発生しました。ユーザーがアプリ全体のさまざまな機能にアクセスできるようにするメニュー システム (サイドバー) があります。私は最近、ユーザーフレンドリーにするために、役割に基づいてさまざまなメニューリンクを無効にするか削除する必要があることに気付きました。そこで、ロール システムとこれらのメニュー リンクとの関係を設定しました。これは完全に機能します。ただし、「基本的なサイト アクセス」ロールは、メニュー内のすべてのリンク (および対応するコントローラー/アクション) にアクセスできるわけではありません。以前は、フィルター構成を介して属性をグローバルに適用するだけで、サイトへのアクセスを許可していました。Authorize
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AuthorizeAttribute());
}
これで、アプリへの「基本」アクセスを制御するにAuthorize
は、アクション レベルで個々の属性を追加する必要があることがわかりました (「管理者」ロールにはフル アクセス権があります)。これは問題ありませんが、やや面倒ですが、あまりスケーラブルではないようです。クライアントが管理インターフェースを介して新しい役割を追加し、さまざまなタスクへのアクセスを制御したい場合はどうすればよいですか? どのロールがどのタスクにアクセスできるかに基づいて、リンクを動的に無効にするメニュー システムを既にコーディングしました。Authorize
しかし、属性 にさまざまな役割を動的に適用する方法はありません (私が知っていることです) 。
SimpleMembership が蜂の膝ではない理由について読んだことがありますが、ASP.NET メンバーシップ (それ自体に深刻な欠点がありました)からの移行を終えたばかりであり、自分のユーザー/ロール管理を展開したくありません。システム。このシナリオを処理するために何かを正常に実装した人はいますか?