6

MVC5 (VS2013) で承認/ロールを使用できません。

認証はほとんどそのままで機能します (つまり、Visual Studio を使用して既定の MVC プロジェクトを作成するだけです)。DefaultConnection接続文字列を有効な (しかし存在しない) データベースに変更します。AspNetUsers次に、新しいユーザーを登録すると、やなどのテーブルを含むデータベースが自動的に作成されますAspNetRoles

しかし、私は役割で何もできないようです。最初にすべきことは、次のような C# コードでロールを追加することのようです。

Roles.CreateRole("Admin");

次のメッセージで例外が発生します。

「ロール マネージャー機能が有効になっていません。」

次のようにweb.configで有効にします。

<roleManager enabled="true"/>

そして今、例外を取得します:

「SQL Server データベースに接続できません。」

これは で非常に簡単に機能しましSystem.Web.Security.SqlRoleProviderたが、MVC5 にデフォルトで付属する新しいプロバイダーでは機能しませんでした。これについては非常に複雑な記事がたくさんありますが、これは非常に本質的でわかりやすいものであるため、簡単な方法で機能させる必要があるように思えます。

助けてくれてありがとう。

4

2 に答える 2

5

これで解決しました。Roles クラスは、少なくともすぐに使用できる構成に関して、MVC5 のロール管理とはまったく無関係であることが判明しました。

Roles クラスと Membership クラスはまだ存在し、Provider は に構成されていますSqlMembershipProvider

ただし、これは で使用されるプロバイダAccountControllerではなく、Membership クラスをまったく使用しません。を使用しますMicrosoft.AspNet.Identity.UserManager

生成されたAccountControllerは の使用例をたくさん提供しますが、UserManager役割に関連することは何もしません。

Roles に相当するクラスは ですMicrosoft.AspNet.Identity.RoleManager。これに関する完全なドキュメントがMSDNにあります

于 2014-02-02T11:40:45.220 に答える
0

ロールの作成方法については、この記事を参照することをお勧めします。必要なロールを作成したら、UserManager.AddToRole または UserManager.AddToRoleAsync メソッドを使用して、ユーザーを特定のロールに追加できます。

于 2014-01-29T21:42:40.223 に答える