banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[ASP.net]ユーザーウィンドウを閉じると、セッションはすぐに期限切れになります。

私たちは、WEB サーバーのセッションがクライアントのブラウザスレッドに関連付けられていることを知っています。ユーザーがブラウザを閉じると、サーバー側で作成されたセッションオブジェクトも無効になります。ただし、IIS はセッションを処理する際、デフォルトの設定ではユーザーセッションをすぐに無効にしません。通常、約 1 分間待つ必要があります。この 1 分間の間、ユーザーのセッション情報はサーバーのメモリにまだ保存されています。これが不正に乗っ取られると、セキュリティ上の問題が発生する可能性があるため、特定の場合には、ユーザーがページウィンドウ / タブを閉じた後、セッションをすぐに無効にする必要があります。

以下は、簡単な方法です。
1. ウィンドウを閉じた後、すぐに新しいページを表示します。
2. 新しいページでセッションの内容を無効にします。

問題点:
1. 新しいウィンドウを表示するコードは、ブラウザによって禁止される可能性があります。新しいウィンドウを表示する必要がない場合は、Ajax を使用してサーバーにリクエストを送信することができます。
2. サーバーウィンドウの閉じるイベントが存在する場合、この部分のサーバーコードは実行されない可能性があります。

参考コード、IE でのテストが有効です。
フロントエンド

testtesttest

バックエンドの ASPX ページ

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WindowClose.aspx.cs" Inherits="WindowClose" %>
<% Session.Abandon ();%>// セッションの無効化メソッドを呼び出します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。