ASP.NET 組み込みユーザー プロファイルと古いスタイルのユーザー クラス/テーブル

StackOverflow https://stackoverflow.com/questions/1683

  •  08-06-2019
  •  | 
  •  

質問

ASP.NET のプロファイル機能の使用に関するベスト プラクティスに関するガイダンスを探しています。

組み込みのユーザー プロファイルに何を保持する必要があるか、または独自のデータベース テーブルを作成して必要なフィールドの列を追加する必要があるかどうかをどのように決定しますか?たとえば、ユーザーに郵便番号がある場合、その郵便番号を自分のテーブルに保存する必要がありますか、それとも web.config XML プロファイルに追加し、ユーザー プロファイル ASP.NET メカニズムを介してアクセスする必要がありますか?

今思いつく良い点と悪い点は、プロフィールがよく分からないので、 マトリックス 今のところ)、テーブルルートに行けば、おそらくやりたいことは何でもできるでしょう(たとえば、現在のユーザーと同じ郵便番号内のすべてのユーザーを取得するSQL)。ASP.NET プロファイルを使用しても同じことができるかどうかはわかりません。

役に立ちましたか?

解決

プロファイル プロバイダーを使用するアプリケーションは 2 つだけ構築しました。それ以来、使用を控えていました。どちらのアプリでも、会社名、住所、電話番号などのユーザーに関する情報を保存するために使用しました。

これは、クライアントがこれらのフィールドのいずれかでユーザーを見つけられるようにするまではうまく機能しました。検索にはループ処理が含まれます ユーザーのプロフィールを調べ、情報を検索基準と比較します。ユーザーベースが拡大するにつれて、検索時間はクライアントにとって容認できないものになってきました。唯一の解決策は、ユーザー情報を保存するテーブルを作成することでした。検索速度が大幅に向上しました。

この種の情報は独自のテーブルに保存することをお勧めします。

他のヒント

ユーザー プロファイルは、個別のカスタマイズのための優れたクリーンなフレームワーク (別名.プロファイルのプロパティ)。(例えば。igoogle)その問題は、クエリ用に設計されておらず、パブリックユーザーへのデータ共有に理想的ではありません。

したがって、カスタマイズされたユーザー エクスペリエンスを強化したい場合は、ユーザー プロファイルを使用することをお勧めします。それ以外の場合は、独自のクラスとテーブルを使用する方がはるかに良い解決策になります。

私の経験では、プロファイル内の情報は最小限にし、認証に直接必要な必須事項のみを含めるのが最善です。住所などのその他の情報は、独自のアプリケーション ロジックによって独自のデータベースに保存する必要があります。このアプローチは、より拡張性と保守性が高くなります。

それは必要なフィールドの数によって決まると思います。私の知る限り、プロファイルは基本的に、指定されたフィールド サイズで分割される長い文字列です。つまり、フィールドとユーザーが多い場合、プロファイルはあまり適切に拡張できません。

一方、これらは組み込まれているため、簡単で標準化された方法です。つまり、大きな学習曲線はなく、新しいテーブル構造に調整する必要なく、将来のアプリでも使用できます。

独自のものをローリングすると、それを適切に正規化されたデータベースに配置できるため、パフォーマンスが大幅に向上しますが、ほとんどすべてのプロファイル管理コードを自分で記述する必要があります。

編集:また、プロファイルはキャッシュされないため、プロファイルへのすべてのアクセスは最初にデータベースに送られます (その後、そのリクエストに対してキャッシュされますが、次のリクエストではデータベースから再度取得されます)。

自分自身のものを書こうと考えている場合は、 カスタムプロファイルプロバイダー シームレスな統合と、やりたいカスタム作業の両方の長所を提供します。

ユーザーにとって重要ではなく、通常はユーザーがログインしているときにのみ重要な補足データに使用する方がよいと思います。データがすべて消去されても、重要なものが壊れることはないと考えてください。

もちろんそれは個人的な好みですが、他の重要な問題を提起する人もいます。

また、匿名 Cookie でプロファイルが維持されている未認証ユーザーにも使用できることを考慮すると、非常に便利です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top