Я пытаюсь реализовать помню мне fonctionnality для моего сайта asp.net.Asp.net - запомнить меня - пользователь всегда аутентифицирует проблему
Сценарий: Пользователь не зарегистрирован «check me». Он выходит из системы или закрывает вкладку/браузер.
Проблема: Когда пользователь возвращается на страницу входа в систему, он видит, что он подключен, как если бы он проверил «запомнить меня».
Это код Login.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
myCookies = Request.Cookies;
HttpCookie authCookie = myCookies.Get(FormsAuthentication.FormsCookieName);
if (authCookie != null) // Always true!
{
HttpContext page = HttpContext.Current;
System.Security.Principal.IIdentity identity = page.User.Identity;
if (identity.IsAuthenticated) // Always true!
{
//do some data loading
Response.Redirect("~/default.aspx?p=Profil");
}
}
else if (!Page.IsPostBack)
{
Session.Abandon();
}
}
protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e)
{
if (userCredentialValid())
{
HttpCookie formAuthCook;
Response.Cookies.Clear();
if (LoginUser.RememberMeSet)
{
DateTime expiryDate = DateTime.Now.AddDays(30);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, LoginUser.UserName, DateTime.Now, expiryDate, true, String.Empty);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
formAuthCook = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
formAuthCook.Expires = ticket.Expiration;
formAuthCook.HttpOnly = true;
formAuthCook.Secure = true;
Response.Cookies.Add(formAuthCook);
}
else
{
formAuthCook = mesCookies.Get(FormsAuthentication.FormsCookieName);
if (formAuthCook != null)
{
formAuthCook.Expires = DateTime.Now;
Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
}
}
e.Authenticated = true;
}
else
{
e.Authenticated = false;
}
}
Спасибо заранее!
РЕДАКТИРОВАТЬ: Проверено на Chrome и Firefox.
Это может быть проблема с браузером. Chrome работает автоматически, как и другие браузеры. Они сохраняют файлы cookie, даже если разработчик сайта не хочет этого делать. См. Https://bugs.chromium.org/p/chromium/issues/detail?id=128513 – Igor
Интересно! Но проблема такая же с Firefox ... – UnBoug
Firefox предлагает ту же функциональность, что и я, как и многие браузеры. Вы можете проверить его, отключив эту «функцию», чтобы узнать, связано ли это с этим или нет. – Igor