ユーザーがログインする内部 Web サイトがあります。このデータは Cookie として保存されます。そこから、ユーザーは楽しい道を歩み始めます。アプリケーションは、認証レコードをクエリして、ユーザーが持っている権限を判断することがよくあります。
私の質問は次のとおりです。必要なときにユーザー データの Cookie を照会するか、ユーザー情報をビューステートに保存する方が効率的ですか?
[編集] 以下で説明するように、Session もオプションです。
ユーザーがログインする内部 Web サイトがあります。このデータは Cookie として保存されます。そこから、ユーザーは楽しい道を歩み始めます。アプリケーションは、認証レコードをクエリして、ユーザーが持っている権限を判断することがよくあります。
私の質問は次のとおりです。必要なときにユーザー データの Cookie を照会するか、ユーザー情報をビューステートに保存する方が効率的ですか?
[編集] 以下で説明するように、Session もオプションです。
個人的には、セッションを使用して物事を保存することを好みますが、ここにいる他の開発者はそれはダメだと考えているようです。
注意点が 1 つあります。ユーザーの IP をセッションに保存し、それをユーザーの現在の IP と比較して、セッションのハイジャックを回避することをお勧めします。おそらく、ここにいる他の誰かが、セッションのハイジャックを防ぐ方法についてより良い考えを持っているでしょう.
Viewstate はユーザーが表示しているページに固有のものであるため、楽しい道を進んでいくとなくなります。データを永続化する良い方法ではありません。
最善の策は、ASP.NET に組み込まれているフォーム認証を使用することです。ユーザー固有の情報をフォーム認証チケットの値に押し込むこともできます。そこに(暗号化後)4000バイトを取得でき、必要なものをすべて保持できます。また、サイトのページへのユーザー アクセスの許可と拒否も処理し、必要なときに有効期限が切れるように設定できます。
セッションへの保存は、スケールが非常に貧弱で (サーバーのリソースを消費する)、同じサーバーに複数のブラウザー接続を使用しているユーザーにとって迷惑になる可能性があるため、ノーノーです。やむを得ない場合もありますが、できれば回避するために多大な努力を払う必要があります。
セッション データを使用できます。これにより、いったんそこに保存すると、ユーザーがクエリ文字列を変更してだまされないようにすることができます。