0

セッションに 20 分のタイムアウトを設定できます。つまり、ユーザーが 20 分以内にリクエストを行わない場合、セッションは期限切れになります。

<sessionState timeout="20" />

しかし、私が必要としているのは、ユーザーがまだリクエストを送信していても、一定時間後にセッションを期限切れにすることです。

たとえば、ユーザーが別のリクエストを送信するかどうかに関係なく、4 時間後にセッションを期限切れにする必要があります。これは、マルウェアがデフォルトのセッション動作を悪用するのを防ぐためです...

ASP.NET で構成または実装する方法は?

構成設定があることを望みましたが、見つかりませんでしたか?

どうもありがとう

4

3 に答える 3

1

この要件はかなり一意であるため、この要件の構成設定はありません。

これを実装するには、クライアントが最初に接続したときにCookieを発行します。リクエストごとにこのCookieを確認し、4時間が経過したときに拒否を開始します。この開始時刻は、CookieまたはSession変数に保存できます。

于 2012-10-31T13:04:38.003 に答える
0

これにはコードサンプルがあり、まさに私が欲しいものです:

http://pooyakhamooshi.blogspot.co.uk/2012/10/how-to-implement-hard-session-expiry-in.html

于 2012-10-31T13:57:48.623 に答える
0

Oded が言及しているように、セッション開始イベントでセッションの最初のログイン時刻も保存する必要があります。セッションを読んでいるときは、時間を確認し、Session.Clear(); を使用します。

グローバルプロパティを使用して、セッション開始時刻を確認する簡単な方法です。

public User CurrentUser
{
    get 
    {
         User user = (User)Session["CurrentUser"];
         if (user.startTime > "4 hours") // you can do it what ever you want.
             Session.Clear(); //or .Abandon(); [Check Here][1]

         return (User)Session["CurrentUser"]
    }
}

ここをチェック

于 2012-10-31T13:29:26.417 に答える