Roles.AddUserToRoleは、本当に私のニーズを満たすために探しているものです。ユーザーロールをsessioに保存する必要があると思いますか?
いいえ!ユーザーをロールに追加するということは、プロバイダーがユーザーをロールにリンクすることを意味します。すでにユーザーがリンクされているので、これは価値のない方向です。
これらの役割をなんらかの方法で保存して、役割のメンバーシップに基づいてコントロールとリンクを表示できるようにします
なぜあなたはこれをする必要がありますか?ページレベルでは、トリミングを使用してASP.NETセキュリティを設定できるため、ページが適切な役割を果たしていない場合に、ユーザーのビューからページを自動的に除外できます。セクション/コントロールなどに関しては、ユーザーがロールに属しているかどうかを確認し、それを表示するかどうかを決定できます。セクションを使用する場合、これの多くはプログラムではなく宣言的に行うことができます。
1つの注意点は、メンバーシッププロバイダーがサポートするものです。 「すぐに使える」プロバイダー(AccessおよびSQL Server)は、ページのセクションなどを除外するためのセキュリティトリミングと宣言型構文をサポートします。MySQLプロバイダーがすべてのメソッドを完全に実装している場合は、それも問題なく使用できます。 。カスタムプロバイダーを作成する場合、機能させるために実装する必要のある特定の部分があります。
簡単に言うと、membershipUserを取得すると(その人を認証すると)、その人が役割を果たしているかどうかにアクセスできるようになります。これはすべて、.NETのメンバーシッププロバイダーの標準実装の一部です。 MySQLに使用しているプロバイダーがすべて同じ方法をカバーしている限り、グーグルですばやく検索して、役割に基づいてビットを表示/非表示にする方法を示す多数のサイトを見つけることができます。