ASP.NET フォーム認証がどのように機能するかを誰かに説明してもらえますか?
現状では、ユーザー名、パスワード、および「サインインしたままにする」チェックボックスがあります。これらの値から、次のようにチケットと Cookie を作成しています。
// Create ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,email,DateTime.UtcNow,DateTime.UtcNow.AddMinutes(30),remember,String.Empty);
// Encrypt ticket
string cookie_contents = FormsAuthentication.Encrypt(ticket);
// Create cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,cookie_contents);
if (remember) {
cookie.Expires = DateTime.UtcNow.AddDays(90);
}
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Secure = true;
// Add cookie to response
Response.Cookies.Add(cookie);
このコードを使用して、自分の Web サイトにサインインできることを期待し、「サインインしたままにする」をオンにすると、少なくとも 90 日間サインインしたままになりますか?
しかし、私が見ているのは、最初のログインから少なくとも 30 分後にサインアウトされていることです (これは、チケットのために確保された時間ですか?)。
Cookie の有効期限とチケットの有効期限の違いと、署名を保持する方法を教えてください。Cookie とチケットの両方に 90 日間を設定する必要がありますか?