私は ASP.NET MVC を使用しており、誰かがサイトに戻ったときに自動的にログインできるようにしたいと考えています (このサイトとまったく同じ方法で)。
ユーザーが最初に登録またはログインするときに、Cookie を次のように設定します。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
"playerid",
DateTime.Now,
DateTime.Now.AddMinutes(1), //This will be set to a longer period in live...
true,
Username + "|" + item.PlayerID.ToString(),
FormsAuthentication.FormsCookiePath);
string encTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
ユーザーとしてログインしてこれをテストし、Cookies
タブを確認するとFirebug
、有効期限が に設定されていSession
ます。ブラウザーを閉じてから自分のサイトに戻ると、ログインしていません。これは、ブラウザーを閉じるとセッションが終了することを期待するものです (しかし、これは私が望んでいることではありません!)。
ただし、ログインしてサイトをナビゲートすると、1 分が経過すると有効期限Session
が表示されなくなり、実際の日付スタンプとして表示されます。その後ブラウザを閉じて自分のサイトに戻ると、自動ログインされます。
要約すると、私の有効期限は、Session
私が規定した実際の有効期限 (この場合は t + 1 分) までに設定されており、サイトでアクティブになっているようです (スライド有効期限を使用しています)。
有効期限を FormsAuthentication チケットに記載されているものに設定する方法はありますか (および として表示されませんSession
)?