過去数か月間、認証のタイムアウトが 30 に設定されているにもかかわらず、非アクティブ状態が 20 分間続いただけで、認証が早期に期限切れになることがあるという苦情がユーザーから寄せられていました。認証時間の半分が残っていて、何かをする可能性を残して、10分待って、何か他のことをして、21分待って、「早い」タイムアウトを取得します。
マスター ページの Page_Load でこのようなことを行うことの潜在的な欠点はありますか?
if(CurrentUser != null) {
FormsAuthentication.SetAuthCookie(CurrentUser.UserName, false);
}
...したがって、すべてのリクエストでスライド有効期限をリセットしますか?
編集:
このコードは、私が最終的に使用したものです。1 分に 1 回だけトークンをリセットします。
var cookie = Request.Cookies[FormsAuthentication.FormsCookieName];
var ticket = FormsAuthentication.Decrypt(cookie.Value);
if (ticket.IssueDate.AddMinutes(1) < DateTime.Now && ticket.IssueDate.AddMinutes(30) > DateTime.Now) {
FormsAuthentication.SetAuthCookie(currentUser.UserName, false);
}