Я не получаю идентификатор пользователя конкретного пользователя при входе пользователя в систему
Я создал экран входа в систему в c# asp.net. Данные извлекаются из базы данных логина и пароля. Я получаю только одного пользователя, но остальные пользователи не доступны, что означает возвращение обратно на экран входа в систему.
Что я уже пробовал:
Поля Базы Данных: Имя Таблицы: UserProfile
[UserID] UNIQUEIDENTIFIER CONSTRAINT [def_UserID] DEFAULT (newsequentialid()) NOT NULL, [UserName] VARCHAR (15) NOT NULL, [Password] VARCHAR (MAX) NULL, [EmailAddress] VARCHAR (50) NOT NULL,
Исходный код кнопки входа в систему:
protected void lnkBtnLogin_Click(object sender, EventArgs e) { con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); con.Open(); cmd = new SqlCommand("select * from UserProfile", con); sdr = cmd.ExecuteReader(); string username = txtUsername.Value; string password = txtPassword.Value; cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 15); cmd.Parameters.Add("@Password", SqlDbType.VarChar); cmd.Parameters["@UserName"].Value = username; cmd.Parameters["@Password"].Value = password; Session["username"] = username; while (sdr.Read()) { // Accessing the Session UserID value to all the pages. Session["UserID"] = sdr["UserID"].ToString(); if (sdr["UserName"].ToString() == username && sdr["Password"].ToString() == password) { Response.Redirect("Home.aspx"); } else { Response.Write(@"<script>alert('" + errorMessage + "');</script>"); Response.Redirect("Login.aspx"); } } con.Close(); }
В этом коде первый пользователь успешно входит в систему и перенаправляет страницу на главную страницу, а остальные пользователи, если они вошли в систему, автоматически возвращаются на экран входа в систему. Проблема именно в том, что он не учитывает строку имени пользователя и пароля идентификатора пользователя. Он принимает только первый идентификатор пользователя и продолжает входить в систему. Может ли кто-нибудь объяснить мне, в чем дело
Richard Deeming
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]
Richard Deeming
И почему вы заново изобретаете колесо? ASP.NET имеет несколько совершенно хороших встроенных систем аутентификации - например, Личность ASP.NET [^]
Member 8583441
Это для примера практики, которую я сделал, чтобы этот код работал. Но на самом деле я работаю над хэшированием пароля с моим собственным исходным кодом, но не в этом проекте.
Member 8583441
Я разрабатываю еще один собственный проект, чтобы много практиковаться, и я более свежий, так что понятия не имею о кодировании. У меня был 1 год опыта работы в этой области обучения .Net.