Когда я выхожу из системы он все еще входит в систему и когда я возвращаюсь он все еще входит в систему
Когда я выхожу из системы asp.net страница, но она все еще входит в систему ,если я копирую ссылку в новой вкладке после выхода из системы, она все еще входит в систему , также после выхода из системы, если я нажимаю кнопку Назад браузера, она все еще показывает вход,
мне нужна помощь. я добавляю код страницы выхода из системы также plz help
Что я уже пробовал:
public partial class logout : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Session.Clear(); Session.Abandon(); Response.Cache.SetCacheability(HttpCacheability.NoCache); FormsAuthentication.SignOut(); Session.Remove("LOGINNAME"); Session.Remove("LOGINPASSWORD"); Session.Remove("Index"); Session.Remove("Default"); Session.Remove("logout"); Session.Contents.RemoveAll(); Session.RemoveAll(); Cache.Remove("LOGINNAME"); Cache.Remove("LOGINPASSWORD"); Cache.Remove("AGENTID"); Response.Cache.SetNoStore(); Response.Cache.SetNoServerCaching(); Response.Expires = -1; Session.Timeout=1; Response.Redirect("Default.aspx", true); Response.Flush(); } }
Richard Deeming
Session.Remove("LOGINNAME"); Session.Remove("LOGINPASSWORD");
Вы используете аутентификацию форм, поэтому нет необходимости хранить имя пользователя где-либо еще. И вы должны НИКОГДА храните пароль в памяти или в файле cookie.
Это также заставляет меня подозревать, что вы можете хранить пароль в базе данных в виде обычного текста, что является серьезным сбоем безопасности.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]
Cache.Remove("LOGINNAME"); Cache.Remove("LOGINPASSWORD"); Cache.Remove("AGENTID");
То
Cache
является глобальным для вашего приложения, а не для конкретного пользователя. Если вы храните пользовательские данные в Cache
тогда вы столкнетесь с некоторыми серьезными ошибками, как только несколько пользователей будут использовать ваше приложение одновременно!