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