FormsAuthentication を使用したログイン システムがあり、ブラウザを閉じて開くときに何らかの理由でログアウトされます。ログインコードを設定する方法は次のとおりです。
FormsAuthenticationTicket ticket;
ticket = new FormsAuthenticationTicket(1, tbUsername.Text, DateTime.Now, DateTime.Now.AddYears(1), true, string.Empty, FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.HttpOnly = true;
//Add the cookie to the request
Context.Response.Cookies.Add(cookie);
ご覧のとおり、Cookie がセッション間で永続的になるように設定しました。ここに私の web.config 部分があります:
<authentication mode="Forms">
<forms slidingExpiration="false" loginUrl="~/Login.aspx" name="BOIGAUTH" defaultUrl="~/Admin/Settings.aspx"/>
</authentication>
また、この特定のアプリケーションでは SessionState が無効になっています。誰が何が悪いのか知っていますか?
ところで、アプリケーション ブラウザを 2 時間以上オンのままにしておくと、Web サイトを操作していなくても、ログインしたままになりました。Cookie は、ブラウザーを閉じるときにのみ失われます。