2009-06-19 25 views
4

私の古典的なASPアプリケーションでは、クライアントがブラウザを閉じるとASPセッションID関連のクッキーが失われてしまいます。だから...従来のASPセッションIDクッキーライフタイム

クライアントがブラウザを閉じてもASPセッションIDクッキーを同じにするにはどうすればいいですか?

答えて

5

あなたは新しいブラウザセッションを開始し、あなたのサイトを参照するとき(すでに経験しているとして)、古典的なASPにはASPセッションCookieが存在しないことを検出し、あなたのための新しいセッションを作成します。

セッションクッキーは、セッションの存続期間中存在します。ブラウザを閉じると、Session.Timeout期間内に同じセッションCookieを再度表示しない限り、Session.Timeoutが期限切れになるまで、セッションCookieが削除されます(サーバー上のセッション状態は、Session.Timeoutが期限切れになるまで孤立したセッションとして存続します)。

新しいセッションセッション/インスタンス間でASPセッションCookieの有効期間を延長する唯一の方法は、ブラウザ/クライアント上のスクリプトを使用してCookieの有効期間を変更することです。

ブラウザを閉じるなどのさまざまなイベントを管理する場合は、独自の状態管理メカニズム(データベースに状態を永続化するなど)を実装し、長寿命の通常のCookieを使用する必要がありますサーバーサイドスクリプトの各リクエストで有効期間が延長されるスライドの有効期限があります)を使用して、状態をユーザーに一致させます。

編集:

次の資料は、セッションクッキー(Cookieの有効期限までスクロールダウン)を変更するスクリプトがあります:archive.org

を経て、

  • ASP Session Cookies (Plynt)をしかし、 Shobanは、Session Fixation (OWASP)のリスクがあることを正しく指摘しています。ただし、この身を守るためにいくつかの道を行くことができます。

    アプリケーションはその後、機密データ(クレジットカード、財務、医療など)を保存している場合、私はまた、いくつかの注意点を追加したいです私はこれをやっておらず、あなたのユーザーが再びログオンして新しいセッションを開始しなければならないという事実を知っていることをお勧めします。転ばぬ先の杖。

+0

いい感じです....しかし、それを行う方法? –

+0

"私は110%です。ユーザーがブラウザを閉じると、セッションは終了しません。" http://www.asp101.com/articles/john/sessionsend/default.asp ご意見はありますか? – Shoban

+0

セッションの正しいセッションはSession.Timeoutが期限切れになるまで終了しませんが、ブラウザを閉じるとSession Cookieが期限切れになり、Session.Timeoutの後にクリーンアップされるまでサーバー上の状態は孤立します。サイトへの最初のリクエストにセッションCookieがない場合、常に新しいセッションが作成されます。 – Kev

0

これは設計によるものではありませんか?

代わりに通常のCookieを使用したいのですか?

+0

私はIISのデフォルトを変更しておらず、単にクッキーを失うだけです。 –

+0

Bravaxは正しい - これは設計によるものです。セッションは失われたり期限切れになったりすることはなく、同じブラウザセッション以外ではアクセスできません。 – Fenton

1

セッションタイムアウトを増やすことができます。

Session.Timeout[=nMinutes] 

http://www.asp101.com/articles/john/sessionsend/default.asp

<% 
    Response.Cookies("firstname")="Alex" 
    Response.Cookies("firstname").Expires=#May 10,2012# 
    %> 

文句を言わない、この作品?

http://www.w3schools.com/ASP/asp_cookies.asp

+0

私はちょうどこれにメモを追加する必要があります - クライアント側のクッキーに個人情報を保持しないでください。セキュリティ上の問題を引き起こすだけでなく、多くの国(欧州連合全体を含む)では、Cookieに個人情報を格納することは、ユーザーの許可なく行われることは違法であるためです。 – Fenton

+0

はい、これはカスタムCookieで動作します...私はIISで作成されたセッションID Cookieについて説明しています。 –

+0

@Sohnee ..それは単なる例でした。 – Shoban

0

セッションクッキーは、セキュリティ上の理由から、ブラウザ間でセッションにアクセスできないようにする必要があります(2つの異なるブラウザまたは同じブラウザを閉じて再オープンした場合)。

通常、詳細サーバー側を格納し、単純なIDを含むクライアント側Cookieを使用して情報を取得します。

1

「セッションCookie」は、ユーザーがブラウザを閉じたときにセッションを終了する手掛かりです。

サーバがセッションを終了したことを知る方法がないため、サーバのタイムアウトが存在するため、しばらく戻ってこない場合はセッションが終了する必要があります。

永続的なCookieが必要な場合は、自分で設定する必要があります。ユーザーがセッションを終了できないようにする方法はありません。

関連する問題