0

SQL データベースのテーブル AspNetRoles にいくつかのロールをシードしました。ユーザーは AspNetUsers で見つかります。

また、多数の aspnet_ テーブルを見つけました (これらは古い WebForm のものだと思います)。ビュー内で、結果を返さない @Roles.GetAllRoles() を呼び出しています。aspnet_Roles テーブルにはレコードがありません。そこでチェックしているのかもしれません。しかし、シードされたロールが次のように作成されているため、それはありそうにありません。

 var roleManager = new RoleManager<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
        if (!roleManager.RoleExists("Member"))
              roleManager.Create(new IdentityRole("Member"));

MVC5 に関する私の知識がほとんどないため、 Roles.GetAllRoles() が正しい結果を返すことを示唆しています。

私はこの @model EUWebRole.Models.IdentityManager を使用しています ApplicationUser も試してみましたが、結果は変わりませんでした。

質問に:

1) ロールのリストを取得するにはどうすればよいですか? 2) 間違った「テーブル」を使用している場合、正しいテーブルを使用するように設定するにはどうすればよいですか?

どんなアイデアでも大歓迎です。

4

1 に答える 1

3

aspnet_tables は、デフォルトの MembershipProvider または SimpleMembershipProvider のいずれかから古いものです (いずれにせよ、それらを削除する必要はありません)。

MVC 5 はデフォルトで Identity 2.0 を使用します。ロールで何かをする必要がある場合は、RoleManagerを使用する必要があります。

于 2014-06-09T19:19:22.020 に答える