2012-03-17 9 views
2

Web設定でセッション時間を設定しています。私はまた、セッションタイムアウトを検出し、ユーザーに知らせるためのjavascriptを持っています。セッションが期限切れになる前に警告ユーザー、セッションを更新するオプション

ポップアップでセッションのタイムアウトが発生する前に30秒または分以上の時間をユーザーに警告し、それらを延長したりキャンセルしたり、タイムアウトさせたりする機会を与えたいと考えています。これはできますか?私はインターネット上でさまざまな方法を使用しようとしましたが、どれもうまくいかないようです。彼らはすべて私が何かをダウンロードする必要があり、私はそれをする必要はありません。

<script type="text/javascript"> 
    var sessionTimeout = "<%= Session.Timeout %>"; 

    function DisplaySessionTimeout() { 
     sessionTimeout = sessionTimeout - 1; 

     if (sessionTimeout >= 0) 
      window.setTimeout("DisplaySessionTimeout()", 60000); 
     else 
      alert("Your current Session is over due to inactivity."); 
    } 
</script> 

私はまた、コードの後ろにタイムアウトをチェックし、rediectingちょうどJavaScriptでそれをやって考えています。

protected void Page_Init(object sender, EventArgs e) 
{ 
    CheckSession(); 
} 


private void CheckSession() 
{ 
    if (Session["ASP.NET_SessionId"] == null) 
    { 
     // Session.RemoveAll(); 
     Response.Redirect("Home.aspx"); 
    } 
} 

答えて

3

におけるそれのデモですセッションとしての時間制限。セッションが期限切れになる前の時刻をクライアントが正確に知る方法はありません。それは私がアプリケーションで行ったことです。

私たちはJQuery $.get("keepalive.aspx")を実行して、セッションにアクセスして最新のセッションを有効にしてリフレッシュするASP.NETページにリクエストします。また、クライアント側のタイマーをリセットします。これは私たちのためにうまくいきました。

詳細については、this postを参照してください。

+0

私はこれを行う方法がわかりません:私たちはJQuery $ .get( "keepalive.aspx")キープアライブページに入るものを行います –

+0

'$ .get'はAJAXリクエストを行います。これはASP.NETページを要求します。これはASP.NETページがセッションを利用できるハンドラであるため重要です。セッションを続けて、セッションをもう20分(またはセッションが予定どおりになっていても)生きているようにしておく必要があります。 –

+0

したがって、loadイベントのkeep aliveページで、次のようなことをします:session.timeout = 20; ?? –

2

HereのjQuery

Hereを「セッションタイムアウト」に警告を与える方法の良い例は、あなたがessentialy同じでタイマーを持っている必要がアクション

+0

この本当の音ではありません「あなたはクッキーレスセッションを使用していない限り、非同期ポストバックがセッションを延長しないだろう」してみてください - 私の知る限りですべての要求をクッキーはセッションタイムアウトを延長します。あなたは他の何かを意味するかもしれない - リンク/コメントを追加するのはいいだろう。 –

+0

これを行う方法がわかりません://セッションを拡張するには$ .get( "keepalive.aspx")などのメソッドを使用してください。 –

+0

@Alexie、あなたの権利は、ここでは適用されません。私は自分の答えを変更しました。 – Coltech

0

ます。また、Microsoftの例を確認することができ、それがあなたの問題の正確なようで、here

関連する問題