2012-06-15 4 views
-1

Я делаю проект, где мне нужно создать систему VLE для школьного сайта. Я использую визуальный веб-разработчик 2008, C# и базу данных SQL. Что мне нужно сделать, когда учащийся регистрируется при использовании своего имени пользователя и пароля, они должны иметь свою конкретную информацию, отображаемую из базы данных (например, имя курса, идентификатор студента, адрес электронной почты и имя и т. Д. Из SQL). Я создал страницу входа:получить пользовательскую информацию из базы данных после входа в систему

protected void Button1_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString); 
    con.Open(); 
    string cmdStr = "select count (*) from Registration where UserName ='" + TextBox1.Text + "'"; 
    SqlCommand checkuser = new SqlCommand(cmdStr, con); 
    int temp = Convert.ToInt32(checkuser.ExecuteScalar().ToString()); 
    if (temp == 1) 
    { 
     String cmdStr2 = "select password from Registration where UserName ='" + TextBox1.Text + "'"; 
     SqlCommand pass = new SqlCommand(cmdStr2, con); 
     String password = pass.ExecuteScalar().ToString(); 
     con.Close(); 

     if (password == TextBox2.Text) 
     { 
      Session["New"] = TextBox1.Text; 
      Response.Redirect("secure.aspx"); 
     } 
     else 
     { 
      Label1.Visible = true; 
      Label1.Text = "Invalid Password....!!!"; 
     } 
    } 
    else 
    { 
     Label1.Visible = true; 
     Label1.Text = "Invalid UserName....!!!"; 
    } 
} 
+0

Считается «плохой» специально сообщать «неверный пароль» или «недопустимое имя пользователя». Причина в том, что он эффективно позволяет враждебным знать, когда они получают правильное имя пользователя. При выполнении функций входа в систему существует несколько наборов лучших практик, помогающих разработчикам избежать общих проблем, таких как «не хранить пароли в текстовом виде». Не стоит много искать, чтобы найти их в сети. – StarPilot

+0

Добавление любого старого текста в ваши запросы к базе данных плохо для безопасности (уязвимо для SQL Injection) и производительности (не может повторно использовать планы запросов). Любой может уничтожить вашу базу данных с вашим кодом, как это. Правильный способ сделать это - это параметризованные запросы - см. [This] (http://www.sommarskog.se/dynamic_sql.html#SQL_injection) для некоторого хорошего фона на SQL Injection. – Bridge

+0

Используйте это для справки http://www.codeproject.com/Articles/12907/Simple-Stored-Procedures-in-NET – neo

ответ

1

Когда вы получите имя пользователя, вы можете перейти к набору данных, чтобы получить все сведения об этом пользователе и показать его в secure.aspx соответственно.

совет: не используйте sql-запрос напрямую (уязвим для SQL-инъекций), вы должны использовать хранимый proc .. , а также не хранить пароль в виде простого текста. Почему вы извлекаете данные дважды для одних и тех же данных.

+0

, что мне нужно сделать, это войти в базу данных и получить пользовательская информация, например, его имя пользователя, электронная почта, информация о курсе – majed

+0

да, я хочу получить данные в secure.aspx, но как я получу, я не знаю, может быть, есть какой-то запрос для входа в систему и получить информацию о пользователе на защищенной странице, пожалуйста, дайте мне код, если вы знаете – majed

0

Это не решит все ваши проблемы, но я хотел бы прочитать эту статью

http://www.codehighstreet.com/Articles/overview_of_membership_and_installing_sql_membership_provider-part_1/overview_of_membership_and_installing_sql_membership_provider-part_1.aspx

Ваше текущее Имя пользователя и пароль решение не очень безопасно на всех, как Вы в данный момент хранения пароля как обычный текст. В этой статье объясняется, как установить и настроить базу данных имени пользователя и пароля и использовать некоторые элементы управления, которые будут обрабатывать аутентификацию для вас

+0

дорогой я могу войти в веб-страницу, используя имя пользователя и пароль, мне нужно войти в систему и получить пользовательская информация после входа в базу данных не только имя, но и сведения о курсе и т. д., возможно, есть какой-то логин для получения информации о пользователе из базы данных, но я не знаю этого кода, пожалуйста, помогите мне – majed

Смежные вопросы