ブラウザーで aspxauth および asp.net_sessionid Cookie の有効期限を設定および更新するように .NET アプリケーションをセットアップする方法があるかどうか疑問に思っています。
私が見たところ、Cookie の有効期限は 1/1/0001 のようなもので、ブラウザを閉じるまで保持するようにブラウザに指示しています (これは Chrome を使用して観察しました)。明示的な時間を設定したいのですが、リクエストごとにその時間を更新する必要があります。
私は次のようなコードでこれをやろうとしています:
var timeoutMins = Session.Timeout;
if (Response.Cookies.Count > 0)
{
foreach (string s in Response.Cookies.AllKeys)
{
if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
{
Response.Cookies[s].Expires = DateTime.Now.AddMinutes(timeoutMins);
}
}
}
global.asax End_Request イベントでこれを実行しようとしましたが、ページごとに数回発生し、セッション状態のタイムアウトにアクセスできないため、これは適切な場所ではないようです。さらに、ログインとログアウト時にのみトリガーされるため、基本的には一度設定できますが、更新することはできません。これにより、ユーザーがアクティブであっても、ログイン後 15 分でログアウトされます。
これを処理するように.netに指示する設定がどこかにあるようです? 私はこれが奇妙な要求であることを知っていますが、これはこのプロジェクトのセキュリティ要件であるため、機能させようとしています!