4

ユーザーをログアウトする方法に少し戸惑っています。

現時点では、セッションタイムアウトを20分に設定しており、セッションの期限が切れたら、ユーザーはログアウトする必要があると思いました。

session_endでそれを行うコードを追加できます。

web.configでフォーム認証のタイムアウトに遭遇しました。現在、48時間に設定されています。

認証タイムアウトを20分に変更しましたが、これで問題は解決しました。

では、セッションタイムアウトはユーザーをログアウトする必要がありますか、それともフォーム認証タイムアウトによってこれを行う必要がありますか?

ありがとうございました

編集:

私が現在直面しているのは、セッション変数が0に設定されることです。これは、セッションがタイムアウトしたため、問題ありません。しかし、私はユーザーもログアウトすると思っていたでしょう。

認証データは常にCookieに保存され、フォーム認証タイムアウトに達したときにのみCookieがクリアされると言うのは正しいですか?

したがって、私が直面しているのは期待される行動です。ユーザーはセッションを失いますが、認証情報がCookieに保存されているため、ユーザーはまだログインしています。

その場合、セッションタイムアウトをフォーム認証タイムアウトとまったく同じに設定できます。ここでの前提は、ユーザーがWebサイトで何かを行うと、フォーム認証のタイムアウトが更新されることです。

もう1つの方法は、ユーザーをログアウトするsesseion_endメソッドにコードを追加することです。

編集2:

認証タイムアウトは、セッションのタイムアウトと同時に更新されますか?

編集3:

この「有効期限をスライドすると、単一のセッション中の各リクエストでアクティブな認証Cookieの有効期限がリセットされます。」それが私が達成しようとしていることだと私は信じています。セッションと認証タイムアウトが同じである場合、セッションタイムアウトがリセットされるたびに認証タイムアウトがリセットされ、これでジョブが実行されます。フィードバックは大歓迎です...

4

2 に答える 2

1

フォーム認証は、Cookieを使用してユーザーを追跡するように設定できます。それがおそらく起こっていることです。

于 2010-07-20T14:52:17.643 に答える
1

Webアプリケーションの性質によると思います。ほとんどの通常のウェブサイト(StackOverflowなど)は、セッションの終了時にユーザーをログアウトしません。ただし、セキュリティが重要なWebサイト(銀行など)では、ユーザーのログイン状態はセッションに依存し、通常は数分に短縮されます。

その音によって、Webフォームはログインしているユーザーに依存しており、それがセッションのみに依存している場合は、セッションを維持するためにサーバーにpingを実行する必要があります。

フォームが安全な/個人情報を要求していない限り、私はその記入に短い時間制限を課しません。フォームを半分完成させ、就寝して朝に完成させたのは初めてではなかったでしょう。

于 2010-07-20T15:11:26.083 に答える