0

aspnet に mysql ロール プロバイダーを使用したいと考えています。属性 userTableName="user" を使用して、ユーザー用のカスタム テーブルをセットアップしました。問題は、ユーザーをロールに割り当てると、MYSQLRolesprovider がテーブル "my_aspnet_usersinroles" と "my_aspnet_users" にエントリを作成することです。ロールを指定するために使用するテーブルは「ユーザー」テーブルにする必要があることを指定したいと思います。それ、どうやったら出来るの?カスタム ロール プロバイダーを作成する必要がありますか? その関連付けを行うために微調整できる設定はありますか? それとも、このシステム全体を間違って使用しているだけですか? ありがとう

4

2 に答える 2

0

ユーザーとそのロール用に個別のテーブルが必要です。通常は、ユーザー用、ロール用、およびユーザーを 1 つ以上のロールに結び付けるための合計 3 つです。usersinroles テーブルでは、1 対多の関係が可能になるため、ユーザーは複数のロールを持つことができます。また、適切なデータベース設計では、ユーザー テーブルにユーザー自体に直接関連するアーティファクトのみを含めるように、これを指示します。

于 2014-10-10T20:14:23.993 に答える
0

ロールを指定するために使用されるテーブルが「ユーザー」テーブルであることを指定します。

メンバーシップ プロバイダーでユーザー テーブルを使用する場合は、カスタム メンバーシップ プロバイダーを実装する必要があります。

メンバーシップ プロバイダーとプロバイダー モデルを初めて使用する場合は特に、カスタム メンバーシップ プロバイダーには多くの作業が必要です。

代替アプローチ

  • メンバーシップ プロバイダーのすべての機能が必要ない場合は、FormAuthenticationを使用します。

また

  • 次のように、PrimaryKey と ForeignKey として User テーブルに UserId を作成します。(このアプローチの欠点の 1 つは、新しいアプリケーションでしか使用できないことです。既存のデータベースには実装できません。)

ここに画像の説明を入力

于 2014-10-10T21:03:18.830 に答える