[解決済み] ASP.NET MVCにおけるセッション変数
2022-04-22 12:57:31
質問
私は、ユーザーが特定のリクエストを行うウェブサイト内の複数のウェブページを閲覧できるようにするウェブアプリケーションを作成しています。ユーザーが入力したすべての情報は、私が作成したオブジェクトに格納されます。問題は、このオブジェクトにWebサイトのどこからでもアクセスできるようにする必要があるのですが、これを実現する最善の方法がよくわかりません。セッション変数を使用するのが一つの解決策であることは知っていますが、asp .net MVCでそれをどのように使用するのかわかりません。また、どこでセッション変数を宣言すればよいのでしょうか?他の方法はないのでしょうか?
解決方法は?
物事が本当にセッション状態に属しているかどうかを考えたいと思うでしょう。 これは私自身が時々やっていることで、全体的に強く型付けされた素晴らしいアプローチですが、セッションコンテキストに物事を置くときには注意する必要があります。しかし、セッションコンテキストにものを置くときには注意が必要です。あるユーザーのものだからといって、すべてがそこにあるべきとは限りません。
global.asax で OnSessionStart イベントをフックします。
void OnSessionStart(...)
{
HttpContext.Current.Session.Add("__MySessionObject", new MySessionObject());
}
HttpContext.Current プロパティ != null のコード内の任意の場所から、そのオブジェクトを取得することができます。私はこれを拡張メソッドで行っています。
public static MySessionObject GetMySessionObject(this HttpContext current)
{
return current != null ? (MySessionObject)current.Session["__MySessionObject"] : null;
}
この方法では、コード内で
void OnLoad(...)
{
var sessionObj = HttpContext.Current.GetMySessionObject();
// do something with 'sessionObj'
}
関連
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] PHPのセッションを30分後に失効させるにはどうしたらいいですか?
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET MVC Frameworkで複数のサブミットボタンを処理する方法は?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み] セッションとは何ですか?どのように機能するのですか?
-
[解決済み】サーブレットはどのように動作するのですか?インスタンス化、セッション、共有変数とマルチスレッド
-
[解決済み】PHPのセッションが既に開始されているかどうかを確認する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Automapperにタイプマップの設定がない、またはマッピングがサポートされていない - エラー
-
[解決済み] GET リクエストを許可するには、JsonRequestBehavior を AllowGet に設定します。
-
[解決済み] RedirectToActionのパラメータとしてmodelを渡すことはできますか?
-
[解決済み] DI向けNinjectとUnityの比較【終了しました
-
[解決済み] ASP.Net MVCのmodelStateからすべてのエラーを取得する方法は?
-
[解決済み] Html.ActionLinkをリンクではなく、ボタンや画像にする
-
[解決済み] datetime2 データ型から datetime データ型への変換で、範囲外の値が発生しました。
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
-
[解決済み] Razorを使ってエンコードされていないJsonをViewに書き込むにはどうしたらいいですか?
-
[解決済み] ASP.NET MVC 1でHttpContextBaseからHttpContextオブジェクトを取得するにはどうすればよいですか?