Делаю авторизацию. После ввода логина и пароля со страницы логина отправляются 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("-", "");
}
Подскажите пожалуйста в чем проблема?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть DataGrid в которой в DataGridRowDetail нужно сделать binding context menu к главной view modelКак это сделать? Оно сейчас пишет что не может найти property непосредственно...
У меня есть сайт и серверХочу, чтобы клиентам из разных часовых поясов показывалось разное время