В файлах cookie или сеансе нет свойств, срок действия которых истекает при закрытии браузера. Они контролируются только временем истечения срока (что-то, о чем должен был думать тот, кто определил стандарты для файлов cookie).
Передача false в SetAuthMethod не скажет браузеру удалить cookie при закрытии браузера. Фактически, если в браузере включена опция возврата к оставленным вкладкам, он снова откроет эти вкладки со всеми файлами cookie, которые были там. Если срок действия этих файлов cookie для аутентификации еще не истек, вы сами войдете в систему.
Что вы можете сделать, это указать другое время истечения срока действия, когда пользователь проверяет «Запомнить меня» по сравнению с тем, когда он его не проверяет:
// create this private method.
private void SetAuthCookie(string emailAddress, bool keepMeLoggedIn)
{
int timeout = keepMeLoggedIn ? 525600 : 20; // Timeout in minutes, 525600 = 365 days.
var ticket = new FormsAuthenticationTicket(emailAddress, keepMeLoggedIn, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = System.DateTime.Now.AddMinutes(timeout);
cookie.HttpOnly = true; // cookie not available in JavaScript.
HttpContext.Response.Cookies.Add(cookie);
}
// use it instead of FormsAuthentication.SetAuthCookie(model.username, model.RememberMe);
SetAuthCookie(model.username, model.RememberMe);