私の現在の割り当てでは、セッション状態管理の問題の解決策を実装する必要があります。現在の実装は次のとおりです。
- 複数のエントリを追加してバッチを形成できるasp.netフォームがあります。
- フィールドは単一のエントリを表します (ほとんどのフィールドはオートコンプリートです) - すべてのフィールドに入力して [追加] ボタンをクリックすると、エントリがグリッド ビューに追加されます - [追加] ボタンをクリックするたびに、ポストバックとグリッド ビューが再作成され、以前のエントリが表示されます。
- 上記の手順を複数回繰り返して複数のエントリを入力した後 (すべてがグリッド ビューに表示されます)、[Enter Batch] ボタンをクリックすると、グリッド ビューのすべてのエントリがバッチとしてデータベースに送信されます。
問題: 上記の機能のほとんどを有効にするために、ページ全体と他のページにもセッション状態 (InProc) が実装されています。問題は、ユーザーが同じアプリケーションの複数のインスタンスを開くことができ、アプリケーションが狂ってしまうことです。もう1つの問題は、アプリケーションがユーザーをキックオフし、ユーザーが再ログインする必要があり、それを行うと、バッチで行っているすべてのエントリがグリッドビューから消えてしまうことです。
セッションが Web フォームのどこにでも実装されていることがわかります。上記の 2 つの問題を解決する最も明白な解決策は、セッション状態 (SQL Server) モードを実装することです。
しかし、実装を進める前に、いくつか質問があります。
1 現在の実装を変更できますか (Web フォームで既に使用されているセッション変数を書き直す必要がないように - それらは 2 つあるため) - web.config を変更して (sessionstate cookieless= 「true」-これによりセッションIDがURLに配置され、複数のインスタンスのセッション状態が有効になることを望んでいました)-しかし、それを行った後-ほとんどのフィールドのオートコンプリート機能が機能しないため、変更しましたCookie ベースを許可する設定。したがって、現在のセッションの実装を変更して、アプリケーションの複数のインスタンスで適切に機能するようにする方法はありますか。
- セッション状態を新たに実装する必要がある場合-一意のキーに何を使用するか(セッションを設定および取得する方法など)など、複数のインスタンスを回避できるようにセッション状態(SQLサーバーモード)を実装する方法の簡単な概要を教えてください。変数は複数のインスタンスのこのキーに基づいています) およびデータベース内のテーブルの構成方法など。
注: 現在のセッション状態は「InProc」モードであり、どこにも設定されていないため、それがデフォルトだと思います。セッション変数は、現在の実装ではかなり標準的です。
これは私が始めた新しいプロジェクトです - そしてこれは私の最初の割り当てです - しかし、コードは本当にめちゃくちゃです - それはモジュラーまたは基本的な3層の実装さえ持っていません. コードは非常に管理しにくく、デバッグが困難です。
どんな助けや提案も大歓迎です。君たちありがとう。