私はVBには古いですが、ASP.NETには新しいです
私は新しいウェブサイトでいくつかの辞書を書きました。問題は、複数のユーザーがこれらの辞書を同時に使用している場合、1人のユーザーが別のユーザーの情報を取得することです。
ASP.NETを初めて使用する場合、この問題を回避するための最良の方法は何でしょうか。セッション状態またはViewState?私は間違った方向を見ていますか?
私はVBには古いですが、ASP.NETには新しいです
私は新しいウェブサイトでいくつかの辞書を書きました。問題は、複数のユーザーがこれらの辞書を同時に使用している場合、1人のユーザーが別のユーザーの情報を取得することです。
ASP.NETを初めて使用する場合、この問題を回避するための最良の方法は何でしょうか。セッション状態またはViewState?私は間違った方向を見ていますか?
サーバ側:
セッションはユーザー固有であるか、ブラウザー固有と言えます。サイトのすべてのユーザー間で共有されるわけではありません。セッションは、任意のオブジェクト データ型を保持できます。
Session["key"] = "value";
アプリケーションは、サイト上のすべてのユーザーで共有されます。
Application["key"] = "value";
クライアント側:
ViewState データはユーザー間で共有されず、ページ間でも共有されません。ポストバック中にデータを保持します。
ViewState["key"] = "value";
セッションは、ユーザー固有の情報を保持し、ユーザーのブラウジング セッションの間持続します。ViewState は、ユーザーが現在閲覧しているページのコントロールに固有の情報を保持します。
ユーザーに固有の情報を保存し、ユーザーがサイトを閲覧するときに保持する必要がある場合は、Session が最適なソリューションです。
User
Name、LastName などの情報のようなデータにアクセスする場合は、Session
このデータが現在のユーザーに対して変更されないため、最良の選択です。ただし、変数に値を保存する場合は、同時実行の問題を考慮する必要があります。たとえば、単純なボタンとテキスト ボックスを含むページがあり、ボタンをクリックした後にテキスト ボックスの値が保存されてSession
いる場合、ユーザーがそのページの 2 つのインスタンスを開いた場合次に、セッションの競合が発生します。すべてのボタンをクリックすると、書き込みセッションデータが上書きされます。ページに変数を保存したい場合は使用できますViewState
が、この値はユーザーが簡単に見ることができると考える必要がありますView State Encryption
。ページ間で値を渡したい場合は、使用できますQuery String
幸運を