FormsAuthentication チケットを生成し、それを Cookie に保存しています。これを MVC AuthorizeAttribute と共に使用して承認を提供します。現在、「サインインしたままにする」チェックボックスがオンになっている場合、Cookie の有効期限が切れないようにしています (テスト目的で、cookie.expires を現在 + 1 年に変更しています。サインインしたままにするためにチェックを入れました)。
ただし、チケットの作成時に Cookie が永続的であるように設定しても、タイムアウト期間が過ぎるとチケットは機能しなくなります。
AuthTicket を作成するコードは次のとおりです。
var now = DateTime.UtcNow.ToLocalTime();
FormsAuthenticationTicket authTicket = new System.Web.Security.FormsAuthenticationTicket(1, username, now, now.Add(FormsAuthentication.Timeout), rememberMe, username, FormsAuthentication.FormsCookiePath);
string encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(authTicket);
return encryptedTicket;
これは、Cookie として設定したのと同じ encryptedTicket です。FormsAuthentication タイムアウトを過ぎてもこのチケットを許可する方法を知っている人はいますか? FormsAuthentication Timeout 時間を手動でいじる必要がありますか?