質問

ほとんどすべての場合、ユーザー設定データはCookieに保存され、User Profile APIを使用した場合と同様に(ほぼ)良好な結果が得られると思います。 Cookieを使用する(認証済みユーザー用)の欠点は、Cookieを削除またはタイムアウトできることであると思われます。この場合、ユーザー設定データが失われます。匿名ユーザーの場合、設定データをセッション間で保持する必要がある場合は、ユーザープロファイルを使用する場合でもCookieを使用する必要があります。

では、ユーザープロファイルを保存するためにユーザープロファイルまたはCookieを使用することの最大の利点/欠点は何ですか?

役に立ちましたか?

解決

すべての設定データをCookieで保持することのもう1つの欠点は、データへの変更が行われるたびに、クライアントからのすべての要求およびサーバーからの応答ですべてのデータを送信する必要があることです。これはブロードバンド時代の小さなポイントのように思えるかもしれませんが、それでも追加のオーバーヘッドです。プロフィールAPIを使用するということは、データがサーバーに保持され、ブラウザーが送信する必要があるのはセッションID Cookieだけであることを意味します。

また、あなたが述べたように、匿名ユーザーの場合、Cookieが削除されると、プロフィールDBに保持されているユーザー設定にアクセスできなくなります。ただし、Webサイトの登録ユーザーには当てはまりません。 Cookieを削除しても、サーバーは次回のログイン時にユーザー設定を取得できます。

他のヒント

サイトに登録する利点の1つは、自分の好みを記憶していることです。サーバーではなく、マシンのCookieに情報を保存している場合、別のコンピューターからサイトにログインすると、すべての設定を再度設定する必要がありました-ユーザビリティの観点から、これはかなり悪いです。

匿名ユーザーの場合、Cookieに設定を保存することはかなり賢明に思えるかもしれません-自分が誰であるか、または復帰するかどうかはわかりません。また、述べているように、1つのセッションから次にそれらが誰であるか-ただし、ある種のトークンをCookieに保存し、それをサーバー上の設定ストアにマッピングすることをお勧めします。

また、ブラウザごとに異なるCookieの実装があることに気付きました。たとえば、IEは receive 50 1つのドメイン(元の20から)からのCookie ですが、それでも

Cookieの最大長には制限があり、Cookieはユーザーが制御できない実装を使用しています(結局、Cookieは訪問者のブラウザーの機能です)。個人的には、未知のサードパーティの実装に依存するのは嫌いです。制御することはできません。必要に応じて、可能な限り単純な方法で使用しようとしています。

だから私はどこから来たのか、私は常にサーバーにユーザーデータを保存し、その情報を指すクッキーを渡すだけでした。

ブラウザを潜在的に大きなデータチャンク(ブラウザだけでなく、ウイルス対策アプリケーションなどによっても失われるか、誤って格納されるか、まったく格納されない可能性がある)でブラウザを信頼しないことに加えて、これにはさまざまなものがありますその他の利点:

  • 実装をユーザーから隠しています:Cookieにデータを保存すると、誰でも見ることができ、自由に分析または変更できます。これにより、ユーザーがCookieを好みに変更し、一部のユーザーがいつでも特定の実装に依存しているという理由だけで、おそらく削除したいものを保持しなければならない場合があります。
  • Cookieは共有マシンにプレーンテキストで保存されるため、誰もが以前のユーザーが行ったすべての設定を簡単に確認したり、自由に変更したりすることはできなくなりました。

しかし、最も重要な点は、まったく機能しないブラウザー実装からの切断のままです(小さなトークンを格納するだけが一般的なテスト済みのユースケースです)

Cookieを使用する最大の欠点の1つは、Cookieをコピーできることであることを忘れないでください。Cookieに認証情報を保存するのは危険です。

User Profile APIについてはよく知りませんが、サーバー(?)に情報が保存されていると思います。その場合、多くのユーザーがいる場合は問題が発生する可能性があります。

全体的には、情報の永続性が保証されている場合は、ユーザープロファイルを使用することが最善の解決策である可能性があります。

Cookieにユーザーデータを永続化するProfileProviderを記述できるため、永続化する状態がCookieに適している(サイズ、セキュリティなど)と判断した場合、両方の長所を利用できることに注意してください。

実際には、ASP.NETプロファイルプロバイダーを使用する場合、匿名ユーザーのCookieに設定データを保持する必要はありません。現在のUserID(これは恐ろしいセッション関連の文字列です)をCookieに保存するだけです。これは、以降のアクセスで以前のUserIDになり、古いプロファイル情報を取得して現在のプロファイルに移行するか、古い匿名プロファイルとして認証することさえできます。

scroll top