4

マルチワーカープロセスがセットアップされた Web ファームでホストされる MVC 3 アプリケーションに取り組んでいます。セッションに保存されているが、IIS セットアップのために失われている約 10 個の変数があります。

迷子になるということは、ログオン プロセスが成功したときに、セッション変数を設定したことがログに記録されていることを意味しますが、リダイレクト アクションの後、ランディング コントローラー アクションでは、セッション変数はしばしば空になります。これが関連しているかどうかはわかりませんが、これは HTTPS にあります。

セッションに保存されているユーザー固有の設定を他のメカニズムに移動する可能性を検討していますが、それを行うことができない変数が 1 つあります。上記の展開環境を考えると、次の質問があります。

  1. Cookie は、ユーザー固有の設定のためにセッション変数を保存する唯一の (最善の?) 代替手段ですか?
  2. もしそうなら、クッキーを操作できず、マルチサーバー環境で読み取ることができるように、クッキーを書き込むための安全なメカニズムはありますか?
  3. 私が理解してSystem.Runtime.Cachingいるように、上記の IIS 構成で実行すると同じ問題が発生します。本当?
4

1 に答える 1

7

Cookie は、ユーザー固有の設定のためにセッション変数を保存するための唯一の (最良の?) 代替手段ですか?

いいえ - 考えられる最悪のアプローチについてです。思いつく3つの理由:

  1. それらは操作できます。
  2. それらは、クライアントからサーバーへのすべての要求とと​​もに移動します-非効率的です.
  3. さまざまな方法でそれらを保護することを考え始める必要があるため、実装がさらに複雑になります。

もしそうなら、クッキーを操作できず、マルチサーバー環境で読み取ることができるように、クッキーを書き込むための安全なメカニズムはありますか?

上記の回答を参照してください。

私が理解しているように、System.Runtime.Caching は、上記の IIS 構成で実行すると同じ問題に悩まされます。本当?

真実。プロセス外の状態プロバイダーを使用する必要があります。Sql Serverを使用してセッションデータを保存できます-オブジェクトが明らかにシリアル化可能である場合-または状態サーバーモード mode="stateserver"

詳しくはこちらをお読みください

于 2012-05-14T13:58:31.767 に答える