Есть несколько проблем с вашим кодом.Во-первых, вы добавляете cookie в объект Request вместо того, чтобы добавлять его в Response => Response.Cookies.Add(authCookie);
.
Вторая проблема заключается в том, что вы создаете непостоянный cookie, что означает, что он будеттолько жить через сеанс браузера.Как только пользователь закроет браузер, он исчезнет навсегда, поскольку он никогда не сохранялся на клиентском компьютере.Чтобы создать постоянный файл cookie , необходимо указать для него дату окончания срока действия, которая, очевидно, будет соответствовать продолжительности сохранения этого файла cookie на клиентском компьютере.Например, если вы хотите запомнить в течение 5 дней:
HttpCookie authCookie = new HttpCookie("authCookie", "cookieValue")
{
Expires = DateTime.Now.AddDays(5)
};
Другая проблема заключается в том, что вы храните в куки только хеш-пароль MD5 и ожидаете, что сможете расшифровать его позже с помощью FormsAuthentication.Decrypt
что невозможно.Этот метод может расшифровывать значения, которые были зашифрованы с помощью метода Encrypt
.
И самая большая проблема из них - это безопасность: вы никогда не должны хранить какие-либо вещи, связанные с паролями.Имя пользователя должно быть достаточно.Браузеры предлагают возможность запоминать пароли для данного сайта.Я бы порекомендовал вам использовать эту функцию вместо того, чтобы делать то, что вы делаете.
Другой возможностью является создание файла cookie постоянной аутентификации при входе пользователя в систему, так что даже если он закроет браузер, он будет запомнен как аутентифицированный.на период действия, указанный вами в этом файле аутентификации.