protected void Page_Load(object sender, EventArgs e) { HttpCookie name = Request.Cookies["name"]; HttpCookie sign = Request.Cookies["sign"]; if (name != null && sign != null) { // Если полученная подпись правильная прекращаем дальнейшую обработку события Load // и переходим к следующим этапам жизненного цикла страницы. if (sign.Value == CryptoProvider.GetMD5Hash(name.Value + "s@lt")) { return; } } Response.Redirect("Login.aspx"); }
protected void LoginButton_Click(object sender, EventArgs e) { if (PasswordTextBox.Text == "qwerty" && LoginTextBox.Text == "admin") { HttpCookie cookieName = new HttpCookie("name", LoginTextBox.Text); HttpCookie cookieSign = new HttpCookie("sign", CryptoProvider.GetMD5Hash(LoginTextBox.Text + "s@lt")); // Для того, что бы гарантировать, что данный cookie-набор был создан нашей странице, а не злоумышленником, // в ответ кроме имени мы отправляем cookie-набор подпись. // Для того, что бы усложнить подбор значения, которое мы поместили в подпись используется "соль" - слово или // набор символов. // Каждый раз когда от пользователя будут приходить запросы, мы будем повторно генерировать подпись и проверять, // что бы она совпадала с полученой. Response.Cookies.Add(cookieName); Response.Cookies.Add(cookieSign); Response.Redirect("Default.aspx"); } else { ErrorLabel.Visible = true; } }