Member 8583441 Ответов: 1

Значения не вставляют то, что я отправил из C# ASP.NET данные а также у меня есть еще одна проблема с отображением идентификатора в url


у меня есть таблица users, в которой столбцами являются sessionid, userid, username, password, roleid и usertype.

Эти значения выглядят следующим образом:
1) sessionid - это c# asp.net страница сеанса.SessionID с varchar(32) в качестве типа данных
2) userid-это целочисленный тип данных, начинающийся с 1 и так далее, и это не auto_increment
3) имя пользователя-это значение, введенное из текстового поля с varchar(30) в качестве типа данных
4) пароль-это значение, введенное из текстового поля, а также шифрование его с помощью алгоритма RSA с varchar(max) в качестве типа данных
5) roleid не требуется прямо сейчас, но позже, когда роли будут созданы, администратор обновит его позже соответственно.... с int в качестве типа данных
6) этот столбец используется, чтобы определить, какой тип пользователей например: администратор,менеджер проекта, тимлид и т. д. с varchar(20) в качестве типа данных.

Теперь моя проблема заключается в том, когда пользователь регистрируется из asp.net в SQL server данные вставляются как обычно, но пароль-это 2048 хэш, регистрирующий только 20 символов, а тип пользователя-varchar(20), вставляющий только 3 символа, например Adm, Pro for (Project Manager).

У меня возникла еще одна проблема после регистрации Учетной записи перенаправление ее на страницу входа в систему для входа конкретного пользователя но проблема существует здесь что
http://localhost:7518/(с(rbgid3fbbhidltfcywqv3435))/логин.aspx-файл[^]

почему я получаю дополнительный url и что он говорит Я не знаю в чем ошибка пожалуйста скажите мне решение этой проблемы

Что я уже пробовал:

string uname = Request.Form["username"].ToString();
string password = Request.Form["password"].ToString();
string utype = Request.Form["usertype"].ToString();
Int32? roleid = null;

SqlConnection con = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand("SELECT UserID FROM Users", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (!dr.HasRows)
{
   UserID = 1;
}
ObjUser.SessionID = Session.SessionID;
ObjUser.UserID = UserID == 1 ? 1 : UserID++;
ObjUser.UserName = uname;
ObjUser.Password = RSAEncrypt(password);
ObjUser.UserType = utype;
ObjUser.ObjRole.RoleID = roleid;

cmd.Parameters.AddWithValue("@chvSessionID", ObjUser.SessionID);
cmd.Parameters.AddWithValue("@intUserID", ObjUser.UserID);
cmd.Parameters.AddWithValue("@chvUserName", ObjUser.UserName);
cmd.Parameters.AddWithValue("@chvPassword", ObjUser.Password);
cmd.Parameters.AddWithValue("@intRoleID", ObjUser.ObjRole.RoleID == null ? (object)DBNull.Value : ObjUser.ObjRole.RoleID).SqlDbType = SqlDbType.Int;
cmd.Parameters.AddWithValue("@chUserType", ObjUser.UserType);

1 Ответов

Рейтинг:
9

OriginalGriff

Не шифруйте пароли - это серьезная угроза безопасности. Здесь есть некоторая информация о том, как это сделать: Хранение паролей: как это сделать.[^]


Member 8583441

сейчас я делаю какое-либо шифрование, но создать функцию hashbytes пароль в SQL Server как объяснить

https://www.mssqltips.com/sqlservertip/4037/storing-passwords-in-a-secure-way-in-a-sql-server-database/
как это делается прекрасно, но когда приходит в C# ASP.Net не получает ошибку возврата вывода. Пожалуйста, помогите мне в этом вопросе

Member 8583441

проблема решена... ошибка произошла при инициализации параметра хранимой процедуры на уровне доступа к данным в c# asp.net. Когда я изменил этот параметр, произошла ошибка. Большое спасибо, сэр, за то, что вы дали мне возможность сохранить пароль.

OriginalGriff

Всегда пожалуйста!