リモート オブジェクト経由でアクセスするサードパーティ システムからユーザー データを取得する必要がある Web サイトの書き直しに取り組んでいます。標準化のために、認証用のカスタム MembershipProvider と承認用のカスタム RoleProvider を実装しましたが、現在、プロファイル データを処理する最善の方法を考えています。私が見たアドバイスのほとんどは、可能であれば ProfileProvider モデルを使用してプロファイル データを処理するように言っていますが、その設計は実際には、私が接続しなければならないシステムとうまく調和していないようです。
最大の問題点は、プロファイルは単一のエンティティとして操作されるオブジェクトのバッグであるという ProfileProvider の主張です。SQL ベースのプロバイダーではこれで問題ないかもしれませんが、リモート オブジェクトの呼び出しは非常にコストのかかる操作です。Profile.FirstName を呼び出すと、GetPropertyValues は、プロファイルで定義されたすべてのオブジェクトを含む SettingsPropertyCollection が送信されたように見えます。このウェブサイトには、アドレス情報、注文情報、出席情報、およびその他の複数のセットが含まれます。そのすべての情報を一度に取得すると、パフォーマンスが低下します。各 SettingsPropertyValue オブジェクトで IsDirty フラグを使用して、対象を絞った保存を実行できるように見えますが、それがプリミティブ型である場合に限ります...ほとんどのプロパティはそうではありません。
私はこれを正しく理解していますか?ProfileProvider が提供するのが「このプロファイルを返す」または「このプロファイルを保存する」だけである場合、遅延読み込みは不可能であり、パフォーマンスへの影響が大きすぎます。プロファイル モデルを使用しない場合、すべてのプロファイル データを処理するための適切な代替方法は何ですか? 独自のセッションベースのメカニズムをロールする必要がありますか?