2016-08-11 16 views
0

モバイルデバイスで使用するように設計されたASP.NET Webフォームアプリケーションで開発を引き継いだ。現在のところ、このアプリはセッション変数を非常に重視しています。モードはデフォルトです。モバイルデバイスのWebサイトでASP.NET状態を管理

<sessionState timeout="600"></sessionState> 

アプリがバグであり、セッションデータが失われたり、セッション全体が失われたりすることが問題になることは驚きではありません。

ただ、いくつかの一般的なアプリの概要:いいえセンシティブ(セキュリティリスク)データがセッション

  • セッション内のデータが小さいに格納されていない

    • が、ミッションクリティカルな。巨大なものはありません。わずか数INTの(ID代など)、いくつかの文字列、など私たちは、ユーザーの帯域幅が低くなり、その接続がデータをユーザーごとに一意である
    • まだらになることを想定する必要が

    このアプリケーションをより良くする方法を管理者に提案するのは、セッション変数の使用をやめ、代わりに何かを使うことです。私は、このデータをすべて保存するためにクッキーに切り替えることが、これを処理するより良い方法だという意見があります。私は、一部のユーザーが(モバイルデバイス上であっても)Cookieを無効にする可能性があることを認識していますが、そのような場合は、サイトを使用するためにCookieを元に戻す必要があることを通知するだけです。

    私はクエリ文字列を使用することを考えましたが、プログラミングスタンドポイント(ビルドリンクなど)からクエリ文字列を操作するのは苦労します。

    私は状態データを永続化するさまざまな方法については、このMSDNの記事を読んだ後、このconculsionに来ている、と彼らのプロのとCONのそれぞれ:

    https://msdn.microsoft.com/en-us/library/z1hkazw7.aspx

    私の質問はここにあるが、:クッキーです最良の選択肢?

  • 答えて

    0

    クッキーのサイズは限られており、多くの変数がある場合は実際には最適な場所ではありません。また、人々はクッキーが好きではないので、制限するかもしれません。

    ViewStateはデータを保存するのに最適な場所です。これは、Webフォームからポストバックとして送信され、妥当な量のデータを格納するために使用できます。たとえば、アプリケーションで複数のページを使用してプロセスを完了する場合(たとえば、何かを注文する場合)、ViewStateにデータを保持できます。これは、ページがポストバックされたときに利用可能になります。

    正しい方法で使用すると、ViewStateは非常に効果的です。

    関連する問題