ASP のデフォルトのセッション有効期限は 20 分ですが、多くの場合これでは十分ではありません。現在、顧客から再ログインを求めるリクエストが多いため、セッションが必要な友人の便宜のためにこの記事を用意しました。プログラムで有効期限が設定されていない場合、セッションは IIS で設定された有効期限に従って期限切れになります。IIS のセッション有効期限は変更できます。
時間設定を最初に配置する必要があります
例えば
次のようにコードをコピーします。
Session.Timeout=30 'SEESION は 30 分間有効です
セッション(ID)=Rs(id)
セッション(名前)=Rs(名前)
セッション(パス)=Rs(パス
Session.Timeout プロパティを使用してタイムアウト期間を設定します
ASP アプリケーションにログインしたユーザーの場合、システムのデフォルト時間内に他の操作を行わなかった場合、設定時間が経過するとユーザーのセッションは自動的に取り消されるため、システム リソースの浪費が防止されます。 Session オブジェクトの TimeOut プロパティを使用して、有効期限を分単位で設定できます。設定形式は次のとおりです。
次のようにコードをコピーします。
Session.TimeOut=MaxTime
コード例: (5.asp) ページ。この例は、セッションの終了を制御する方法を示しています。
次のようにコードをコピーします。
<%@ 言語=vbscript %>
<% session.timeout=60 %>
<html>
<head><title>セッションの終了時間を制御する</title><head>
<本文>
<%
誰 = セッション.セッションID
CurrentPage=Request.ServerVariables(SCRIPT_NAME)
Response.AppendTolog 誰 & : & CurrentPage
Response.write <center>あなたのセッション ID は次のとおりです: & who & <p>
Response.write 現在アクセスしているページのパス: & CurrentPage & <p>
if セッション(I)= then
セッション(i)=1
それ以外
セッション(i)=セッション(i)+1
終了する場合
セッション.放棄
Response.write このページはあなたによって & Session(i) & 回更新されました。 </centr>
%>
Asp.net アプリケーションでは、多くの人がセッションの有効期限設定で競合に遭遇します。その中で、セッションの有効期限を設定するには次の 4 つの方法があります。
1. グローバル Web サイト (つまりサーバー) レベル
IIS-Website-Properties-Asp.net-Edit Configuration-State Management-Session Timeout ( minutes) - 120 (2 時間) に設定します。つまり、現在のユーザーが 120 分経過しても操作しない場合、セッションは自動的に期限切れになります。 。
2. ウェブサイトレベル
IIS - Web サイト - 特定の Web サイト (DemoSite など) - プロパティ - Asp.net 現時点では 2 つのオプションがあり、1 つはグローバル構成を編集するもので、もう 1 つは構成を編集するものです。
グローバル設定を編集すると、以前の設定と同じになります。
設定を編集した場合、その設定は現在の Web サイトにのみ有効になります。サーバーには多数の独立した Web サイトが存在する可能性があるためです。
1. 引き続き [ステータス管理] - [セッション タイムアウト (分)] を選択し、360 (つまり 360 分) に設定します。効果は上記と同じですが、現在の Web サイトにのみ有効です。
2. Identity Authentication-Forms-Cooke タイムアウトでは、12:00:00 (12 時間) を選択します。利用可能なオプションは 8 つあります。
00:15:00
00:30:00
01:00:00
02:00:00
04:00:00
08:00:00
12:00:00
1:00:00:00
つまり、最大は 24 時間、最小は 15 分です。これはデフォルトの構成です。アプリ内で自由にカスタマイズ可能です。
3. アプリケーションレベル
範囲が現在のアプリケーションに限定されることを除いて、Web サイト管理と同じです。
4. ページレベル
特定のページで、Session.Timeout = 30 を設定して、特定のページのセッション有効期限を一時的に変更します。
セッションの有効期限を確認するには、次を使用できます。
次のようにコードをコピーします。
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
このうち、設定 2 と 3 は Web.config に反映されます。
次のようにコードをコピーします。
プレーンコピーをクリップボードプリントに表示しますか?
<?xml バージョン=1.0?>
<構成>
<システム.ウェブ>
<認証モード=フォーム>
<forms name=AuthLoginloginUrl=/Login.aspx protection=All timeout=360 slideExpiration=true/>
</認証>
<sessionState mode=InProc cookieless=false timeout=20 />
</system.web>
<場所のパス=Login.aspx>
<システム.ウェブ>
<認可>
<許可ユーザー=* />
</認可>
</system.web>
</場所>
</設定>
<?xml バージョン=1.0?>
<構成>
<システム.ウェブ>
<認証モード=フォーム>
<forms name=AuthLoginloginUrl=/Login.aspx protection=All timeout=360 slideExpiration=true/>
</認証>
<sessionState mode=InProc cookieless=false timeout=20 />
</system.web>
<場所のパス=Login.aspx>
<システム.ウェブ>
<認可>
<許可ユーザー=* />
</認可>
</system.web>
</場所>
</設定>
上記 4 つの設定の優先順位は、ページ レベル > アプリケーション レベル > Web サイト レベル > サーバー レベルです。つまり、ページが 20 分、Web サイトが 120 分に設定されている場合、有効期限は明らかに 20 分になります。
もう一つ注目すべき点があります。
2 番目の設定では、セッション タイムアウト (SessionState) を 120 分に設定し、同時にフォーム認証を使用します。これを 00:15:00 (15 分) に設定します。slidingExpirationo は false です。効果が出るまでの時間は?
有効な結果は、SessionState 設定 (120 分) です。
セッションの有効期限が設定されているのに有効にならない場合は、上記の設定を確認してください。
オンラインで見つかるその他の方法
1. オペレーティング システム: Windows Server 2003
手順: [スタート] -> [管理ツール] -> [インターネット インフォメーション サービス (IIS) マネージャー] -> [Web サイト] -> [既定の Web サイト] -> [プロパティ] を右クリック -> [ホーム ディレクトリ] -> [構成] -> [オプション] -> [セッション状態を有効にする] -> [セッション タイムアウト] (ここ)必要なタイムアウトを分単位で設定します)。わかりました。
2. ASP.NET アプリケーションでのセッション有効期限の設定
ASP.NET などの Web アプリケーションでは、ユーザーの状態を保存するためにセッションが一般的に使用されますが、サーバーのメモリ容量には限りがあるため、セッションの有効期限の設定が必要です。 ASP.NET でセッションの有効期限を設定する方法は非常に簡単です。web.config 構成を変更するだけです。
具体的な変更方法は以下の通りです。web.configで以下のように設定します。
次のようにコードをコピーします。
<システム.ウェブ>
<sessionState mode=InProc timeout=30/>
</system.web>
これは、セッションの有効期限が 30 分であることを意味します。つまり、現在のユーザーが 30 分経過しても操作しない場合、セッションは自動的に期限切れになります。
3. Session を呼び出す cs ページの Load イベントに次のように記述します。
次のようにコードをコピーします。
セッションタイムアウト = 30;
4.asp.net状態サービスにセッションを保存する
次のようにコードをコピーします。
<sessionState cookieless=false timeout=480 mode=StateServer stateConnectionString=tcpip=127.0.0.1:42424 sqlConnectionString=datasource=127.0.0.1;user id=sa;password= />