0

この質問では、ほとんどの場合、すぐに使用できるASP.NETメンバーシップを独自のデータベースに実装している人々からの回答を探しています。データベース内にテーブルを設定しました。ほとんどが必要なものですが、すべてではありません。ユーザーが属する会社(会社)の概念があるので、aspnet_Usersを会社テーブルに関連付ける必要があります(各ユーザーは正確に1つの会社のメンバーになります)。

可能であれば、どのようにそれを行ったのか、将来のある時点でテーブルのデザインを変更する必要がある場合に遭遇する可能性のあるガイドラインを提供してください。できれば、デフォルトのメンバーシッププロバイダーを使用します。

ゼロから始めるか、ASP.NETがすでに提供しているものを使用するかを決めるのに苦労しています。

4

3 に答える 3

1

将来のバージョンで変更される可能性があるため、ASP.NETメンバーシッププロバイダーとその既定のテーブルを使用しないことにしました。そのため、かなりの調整が必要でしたが、最終的にOmidIDによるこのカスタムEntityFrameworkプロバイダーを使用することになりました。しかし、SQL ServerのASP.NETメンバーシップテーブルを簡単に維持および独立できる、かなり完全なエンティティフレームワークベースのメンバーシッププロバイダーがあると言えます。

于 2010-11-06T12:47:04.443 に答える
1

ScottGuthrieがブログに書いたこのようなテーブルベースのプロファイルプロバイダーの実装を使用する必要があることをお勧めします。プロファイル情報用に独自のテーブルを定義できるため、すぐに使用できるプロファイルプロバイダーよりもはるかに優れています。あなたの場合、ユーザーごとの行とFirmId、およびニックネーム、社会保障番号など、好きなものを含むテーブルがあります。

デフォルトのメンバーシッププロバイダーで動作するため、変更を加える必要はありません。この例には、ストアドプロシージャベースの実装とテーブルベースの実装の2つの実装があります。私は2番目が好きですが、どちらも非常に使いやすいです。

デフォルトのプロファイルプロバイダーは、ユーザーのすべての情報を1つのフィールドに格納しているため、少しごみが多いことがわかりました。私が提案したプロバイダーは、これを非常に効率的な方法で解決します。

于 2010-09-13T14:08:48.700 に答える
0

ASP.NETメンバーシップを別のサービスとして扱います。そのまま使用して、その上に機能を追加してください。

この場合、ユーザーを会社にリンクするテーブルを作成するだけですが、ASP.NETテーブルは変更しないでください。ユーザーについて保存する必要のある追加情報がある場合は、ASP.NETメンバーシップのusersテーブルに関連付けられている別のテーブルにこれを配置します。

更新:このASP.NET MVCエリアを使用して、ユーザーとロールを管理し始めましたhttps://github.com/TroyGoode/MembershipStarterKit。必要なすべてのモデル、ビュー、およびコントローラーが付属しており、完全に単体テストされています。それを私のサイトに統合して稼働させるのに1時間以上かかりませんでした。

于 2010-09-13T14:04:56.820 に答える