2

カスタム メンバーシップを持つ ac# mvc razor Web アプリケーションがあり、すべてがうまく機能します。これを使用して、ログインしているユーザー名を取得できます: user.identity.name. ユーザー名とその役割のデータベースがあります。今問題は、私のビューの 1 つで、アクセスを「管理者」のみに制限しようとしているので、使用してみuser.isinroleましたが、これは常に false を返しました。それで、私はそれを使用しようとしroles.isuserinroleましたが、有効になっていないという例外が発生しました。

私はグーグルで、機能を持つロールプロバイダーのカスタムコントローラーをいくつか見つけましたisuserinrole

私の質問は、isuserinrole有効にするためにカスタムコントローラーを作成する必要がありますか? 入力すると、私のビューではroles.--> Visual Studio list を持つ組み込み関数のリストが表示されるisuserinroleので、質問は、独自のカスタム ロール プロバイダーを作成すると、組み込み関数がオーバーライドされるのでしょうか?

カスタム関数があると仮定すると、Web アプリケーションはどのようにすべてを結びつけ、ユーザーが役割を果たしているかどうかを確認しますか?

ご回答ありがとうございます。

4

3 に答える 3

2

カスタム ロール プロバイダーを作成してみてください。MSDN のこのページでは、基本について説明します。

カスタム ロール プロバイダは、抽象クラスから継承する必要がありSystem.Web.Security.RoleProviderます。このクラスでは、抽象メソッドを実装して、アプリケーションのニーズに基づいて呼び出しに適切IsUserInRole(string username, string roleName)に応答するために必要なロジックを提供できます。IsUserInRole

于 2013-08-25T11:15:50.617 に答える