web-dev-qa-db-ja.com

ASP.NET MVC 3:コントローラーメソッドでユーザーの役割を取得する方法は?

できるようになりたい

  1. 現在認証されているユーザーの役割のリストを取得します。
  2. そのユーザーに提供されたデータを、その役割に基づいてフィルタリングします。

ユーザーが特定の役割を果たしているかどうかを確認する方法はありますが、どの役割に参加しているかは関係ありません。データベースは、どのロールがどのデータを表示できるかを認識します。これらの役割に基づいてデータをフィルタリングするには、これらの役割のコレクションをデータサービスに送信する必要があります。

では、最初のステップは、コントローラーメソッドで現在のユーザーに関連付けられているすべてのロールを取得する方法です。

編集:

これはうまくいくようでした:

Roles.GetRolesForUser(User.Identity.Name)

裏付けとなる回答は引き続き歓迎します。

15
Zachary Scott
Roles.GetRolesForUser(User.Identity.Name)
23
Zachary Scott

これは、1つのステートメントで実行できます。

User.IsInRole("admin");
13
Doctor Sid

誰かがこの情報を必要としている場合、ユーザーが多くの役割を持っているが、それを探している場合は、これを行うことができます:(私はid共有だと思いました)

@if (Request.IsAuthenticated)
{
   string[] roles = Roles.GetRolesForUser();
   foreach (string role in roles)
   {
       if (role.Contains("admin"))
       {
           <li>@Html.ActionLink("Administration", "Admin", "Movies")</li>
           break;
       }
   }
}
10
Sophie