22

どのようにmvc 5でログインしたユーザーの役割を見つけることができますか?

このコードでユーザーを作成しました

    private bool AddUserAndRole()
    {
        IdentityResult ir;
        var rm = new RoleManager<IdentityRole>
            (new RoleStore<IdentityRole>(new ApplicationDbContext()));
        ir = rm.Create(new IdentityRole("admin"));

        var user = new ApplicationUser() { UserName = "Admin" };
        var result = UserManager.Create(user, "somepassword");
        UserManager.AddToRole(user.Id, "admin");

        return true;
     }

そのユーザーがサイトにログインした後。コントローラーで、そのユーザーにロール == "admin" があるかどうかを確認するにはどうすればよいですか? 見た目が速くない方法が1つだけ見つかりました。

        var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
        var role = rm.FindByName("admin");
        bool result = User.IsInRole(role.Name); //true

他の方法はありますか?

4

1 に答える 1

93
bool result = User.IsInRole("admin") 

はるかに簡単です。:)

于 2013-10-30T17:26:42.913 に答える