С языком разобраться не составило проблем. А вот с функциональной частью я намучался. Оказалось, что лучше всего использовать для регистрации и авторизации - базу данных MSSQL 2005. А вот как подключиться - я не знал.
Какието SQL Connection, какие-то Query. Что за ConnectionString?
Вот здесь я и расскажу что это такое и как можно подключаться к БД MSSQL не только с сайта, но и с обычных WPF или WinForms программ.
Начнем с того, что нам нужно подключиться к БД. Для этого вам нужно установить MS SQL 2005. (Сейчас уже появился MS SQL 2008) Потом вы создаете таблицу, скажем users. В таблице будет 2 поля: логин и пароль. Это просто.
Теперь нужно подключиться к этой БД из нашей программы или сайта.
Для этого мы пишем простой обработчик события. Ниже приведен код простейшей регистрации пользователя на сайте:
protected void RegBut_Click(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection("Data Source=LH-38QGJLY27BK5;Initial Catalog=NG;Integrated Security=True");
sqlConn.Open();
System.Data.SqlClient.SqlCommand sqlCmd = new System.Data.SqlClient.SqlCommand("INSERT INTO users values('"+LogBox.Text+"','"+PassBox.Text+"')", sqlConn);
sqlCmd.ExecuteNonQuery();
sqlConn.Close();
Server.Transfer("index.aspx",true);
}
В первой строчке мы соединяемся с БД NG, находящейся на MSSQL-сервере LH-38QGJLY27BK5 (это имя моего компьютера, но если база находится на удаленном хосте, то здесь надо указывать его адрес).
Потом открываем подключение. И создаем запрос на языке SQL. В данном случае - записи логина и пароля в таблицу users. Выполняем этот запрос и закрываем соединение. После чего редирект на index.aspx. Т.е. после регистрации вы будете автоматически перенаправлены на главную страницу.
Авторизация делается схожим образом. Также коннектимся к БД. Только вместо команды INSERT, будет команда SELECT:
protected void EnterBut_Click(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection("Data Source=LH-38QGJLY27BK5;Initial Catalog=NG;Integrated Security=True");
sqlConn.Open();
System.Data.SqlClient.SqlCommand sqlCmd = new System.Data.SqlClient.SqlCommand("SELECT * FROM users", sqlConn);
System.Data.SqlClient.SqlDataReader sqlRead = sqlCmd.ExecuteReader();
while (sqlRead.Read())
{
if (LogBox.Text == sqlRead[1].ToString() && PasBox.Text == sqlRead[2].ToString())
{
AuthoTable.Visible = false;
LoginInfoLabel.Text = " Авторизация прошла успешно";
//Здесь поднимаем флажок для привилегий
}
else
{
LoginInfoLabel.Text = "Неверный логин и(или) пароль";
}
}
sqlRead.Close();
}
Комментариев нет:
Отправить комментарий