C#. не получает cookies

197
20 октября 2018, 15:40

Делаю авторизацию. После ввода логина и пароля со страницы логина отправляются cookies и на странице user принимаются и проверяются. Если данные соответствуют, то пользователь остается на странице. Если нет, его возвращает. Проблема в том, что на страницу пользователя cookies не приходят. При отладке в них пустое значение.

UDP:Проблема оказалась в том, что почему-то не удалялись старые cookie и он все время подгружал их с пустыми значениями. Почистил и проблема пропала. Код рабочий

Код функции что отправляет cookies:

        Dictionary<string, string> db = new Dictionary<string, string>();
        SqlCommand getUsersCredCmd = new SqlCommand("SELECT [Login], [Pass] FROM [Users]", sqlConnection);
        SqlDataReader sqlReader = null;
        try
        {
            sqlReader = await getUsersCredCmd.ExecuteReaderAsync();
            while (await sqlReader.ReadAsync())
            {
                db.Add(Convert.ToString(sqlReader["Login"]), Convert.ToString(sqlReader["Pass"]));
            }
        }
        catch { }
        finally
        {
            if (sqlReader != null)
            {
                sqlReader.Close();
            }
        }
        if (db.Keys.Contains(TextBox1.Text) && TextBox2.Text == db[TextBox1.Text])
        {
            HttpCookie login = new HttpCookie("login", TextBox1.Text);
            HttpCookie sign  = new HttpCookie("sign", SignGenerator.GetSign(TextBox1.Text + "bytepp"));
            Response.Cookies.Add(login);
            Response.Cookies.Add(sign);
            Response.Redirect("UserPage.aspx", false);
        }

Код функции, что принимает и обрабатывает cookies:

        HttpCookie login = Request.Cookies["login"];
        HttpCookie sign  = Request.Cookies["sign"];
        if (login != null && sign != null)
        {
            if (sign.Value == SignGenerator.GetSign(login.Value + "bytepp"))
            {
                Label1.Text = login.Value;
                return;
            }
        }
        Response.Redirect("LoginPage.aspx");

Код SignGenerator:

    public static string GetSign(string s) {
        MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
        byte[] hash = provider.ComputeHash(Encoding.Default.GetBytes(s));
        return BitConverter.ToString(hash).ToLower().Replace("-", "");
    }

Подскажите пожалуйста в чем проблема?

READ ALSO
Привязка из контекстного меню

Привязка из контекстного меню

Есть DataGrid в которой в DataGridRowDetail нужно сделать binding context menu к главной view modelКак это сделать? Оно сейчас пишет что не может найти property непосредственно...

195
Смещение часового пояса ASP.NET MVC

Смещение часового пояса ASP.NET MVC

У меня есть сайт и серверХочу, чтобы клиентам из разных часовых поясов показывалось разное время

195
Парсинг значения json с помощью Newtonsoft на с#

Парсинг значения json с помощью Newtonsoft на с#

Задача: получить значение "lastPriceProtected"

215
Изменить .cs на .cshtml

Изменить .cs на .cshtml

После обновления vs все вьюшки изменились сcshtml в g

176