ベストプラクティスがあるかどうかはよくわかりません。それは、情報をどのように使用したいかによって異なります。
まず、メンバーシップとプロフィールは 2 つの別個のものであることを認識する必要があります。ASP.NET のメンバーシップ、プロファイル、およびロール機能は、複数のサイト/アプリケーションにサービスを提供するサービスとして使用するように設計されています。
これらの関係のスキーマを見ると、ユーザーはシステムに固有ですが、ユーザーはアプリケーション間で共有できることがわかります。つまり、プロファイル情報はアプリケーション間でも共有されます。メンバーシップは、実際にはユーザーとアプリケーションとの関連付けであり、その特定のアプリケーションとの関係に関する情報 (パスワード、パスワード Q&A など) が含まれています。
Ryan が提案したようにプロファイル プロバイダーを使用できますが、1) プロファイル メトリックを収集する必要がある場合、その情報は簡単に照会されず、2) メンバーシップ/プロファイル サービスのすべてのコンシューマー間で共有されます。ただし、必要に応じて拡張できます。
Gortok が提案したようにメンバーシップ プロバイダーを拡張することができ、その情報はアプリケーションに関連しますが、既存のストアド プロシージャまたはテーブルをインターフェイスまたは変更する方法で変更することによって、サービスの既存のコンシューマーを壊さないようにする必要があります。意図。
もう 1 つのオプションは、それをサービスとして扱い、asp.net SQL プロバイダーからのユーザー ID を使用して独自のプロファイル実装を参照して、この情報を独自に追跡することです。
Rolla の 4 Guysに、メンバーシップ、プロファイル、およびロールに関する優れたシリーズ (16 部) があります。これを読むことをお勧めします。次に、すべての可動部分に慣れたら、知識に基づいて最適な場所を決定してください。作成しようとしているプロファイル情報を保存する方法と最適な構造化方法。