1

ASP.NET で完全に Cookie ベースのセッションを行う方法を探しています。複雑なオブジェクトを格納するつもりはありません。キーと値のペアを文字列にするだけです。

Play! のやり方に似たものを探しています。フレームワークはセッションを処理し、基本的にすべてのセッション データを Cookie にエンコードし、リクエストごとに暗号化/復号化を処理します。

回避できるのであれば、これのために独自の SessionStateModule を作成する必要はありません。存在しますか?

ありがとう

編集: Cookie が処理できるよりも多くのデータを保存する必要はありません (ほんの数個の識別子)。キーと値のペアが各セッションに固有である必要があります。サーバーの状態を (処理中またはデータベース内で) 維持する必要がないように Cookie を使用したいと考えています。これにより、サーバーを非常に簡単に追加でき、外部アプリケーションへの依存も少なくなります (状態サーバー/memcached/redis などはありません)。

4

2 に答える 2

0

存在するとは思いません。Cookieの使用に固有の制限(特に最大サイズ)があるため、脆弱すぎる可能性があります。

そして、私はこれがあなたの質問に答えていないことを知っています、しかし私はこれのSessionStateModuleために実装しません。そうすることは、Sessionを使用するサードパーティのコンポーネント、またはSessionを使用する将来のメンテナンスプログラマーが不適切なデータ(たとえば大きすぎる)をCookieに保存する可能性があることを意味します。

Cookieにプリミティブ値(string、Int32、DateTime、...)のみを含むキーと値のペアを格納する独自のAPI指向のラウンドを作成することをお勧めします。

APIを「Cookie対応」にすることもできます。たとえば、次の可能性を提供するHttpCookie.Pathを設定します。

  • Cookieを必要としないリクエスト(javascript、画像など)に対してCookieを送信しないようにします

  • アプリケーションの領域ごとに異なるCookie(同じ名前ですが異なるパス)があります。これにより、Cookieのサイズを抑えることができます。

于 2012-09-27T07:30:17.810 に答える