
lab6
.docxГУАП
КАФЕДРА № 14
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Ст. преподаватель |
|
|
|
Барклаевская Н.В. |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №6 |
Создание сайта с использованием технологии ASP.NET. Регистрация и авторизация |
по курсу: Проектирование информационных систем |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4016 |
|
|
|
М.О.Жовтяк |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2023
Цель работы
Реализация регистрации и авторизации пользователя на сайте с использованием технологии ADO.NET с помощью языка C# в Visual Studio.
Ход работы
Реализуется блок авторизации в конструкторе на шаблоне главной страницы. Здесь пользователя для авторизации должен указать логин и пароль, а также указать одну из ролей: учитель, ученик, родитель. Если пользователь неверно вводит пароль, то высвечивается сообщение о неправильном вводе. При успешном вводе появляется сообщение «Привет, …», а также пропадают все поля ввода. Также здесь же существует кнопка для перехода к окну регистрации. Авторизация в конструкторе представлена на рисунке 1, результат работы на рисунках 2-3. Логика работы представлена в Приложении (main.Page.master.cs).
Рисунок 1 – Авторизация в конструкторе
Рисунок 2 – Авторизация при неверном вводе
Рисунок 3 – Пример успешной авторизации
При нажатии на кнопку регистрации появляется окно для заполнения данных в другой веб-форме. Веб-форма в конструкторе представлена на рисунке 4.
Рисунок 4 – Регистрация в конструкторе
Здесь пользователь должен заполнить данные о себе: Имя, Фамилия, Отчество, Телефон, Логин и Пароль. Здесь же предусмотрена валидация на обязательное заполнение полей. Также он должен указать свою роль для работы. При нажатии на кнопку регистрации происходит SQL-запрос в БД на добавление. Результат заполнения формы на сайте представлен на рисунке 5, проверка в БД на рисунке 6. Логика регистрации представлена в Приложении (Raspisanie.aspx.cs).
Рисунок 5 – Регистрация на сайте
Рисунок 6 – Появление данных в БД Access
Вывод
В ходе лабораторной работы были реализованы авторизация и регистрация для пользователей на сайте с использованием технологии ADO.NET с помощью языка C# в Visual Studio.
ПРИЛОЖЕНИЕ
Файл main.Page.master.cs
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Reflection.Emit;
namespace maxim
{
public partial class Site1 : System.Web.UI.MasterPage
{
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Homepage.aspx");
}
protected void Page_Load(object sender, EventArgs e)
{
long iduser = Convert.ToInt64(Session["IDP"]);
string myuser = Convert.ToString(Session["IdU"]);
if (iduser != 0)
{
TextBox1.Visible = false;
TextBox2.Visible = false;
Label1.Visible = true;
Label2.Visible = false;
Label3.Visible = false;
Label4.Visible = false;
Label5.Visible = false;
Button2.Visible = true;
Button1.Visible = false;
Button3.Visible = false;
RoleDropDownList.Visible = false;
Label1.Text = "Привет, " + myuser;
LinkButton3.Visible = true;
}
else
{
TextBox1.Visible = true;
TextBox2.Visible = true;
Label1.Visible = false;
Label2.Visible = false;
Label3.Visible = true;
Label4.Visible = true;
Label5.Visible = true;
Button2.Visible = false;
Button1.Visible = true;
Button3.Visible = true;
RoleDropDownList.Visible = true;
}
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("Raspisanie.aspx");
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
Response.Redirect("Tasks.aspx");
}
protected void Button1_Click(object sender, EventArgs e)
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Study\7 semester\Information systems design\qqq.mdb";
var connect = new OleDbConnection(connectionString);
connect.Open();
string sparol, slogin;
long srole;
sparol = Convert.ToString(TextBox2.Text);
slogin = Convert.ToString(TextBox1.Text);
srole = Convert.ToInt64(RoleDropDownList.SelectedValue);
string sqlQ = string.Empty;
if (srole == 1)
{
sqlQ = "SELECT * FROM Teacher WHERE login_teacher='" + slogin + "' AND password_teacher='" + sparol + "'";
}
else if (srole == 2)
{
sqlQ = "SELECT * FROM Child WHERE login_child='" + slogin + "' AND password_child='" + sparol + "'";
}
else if (srole == 3)
{
sqlQ = "SELECT * FROM Parent WHERE login_parent='" + slogin + "' AND password_parent='" + sparol + "'";
}
else if (srole == 0)
{
Label2.Text = "Выберите роль";
Label2.Visible = true;
return;
}
var mycom = new OleDbCommand();
mycom.CommandText = sqlQ;
mycom.Connection = connect;
OleDbDataReader myread = mycom.ExecuteReader();
if (myread.Read() == true)
{
Session["IdU"] = slogin;
Session["IDP"] = Convert.ToString(myread.GetValue(0));
TextBox1.Visible = false;
TextBox2.Visible = false;
Label1.Visible = true;
Label2.Visible = false;
Label3.Visible = false;
Label4.Visible = false;
Label5.Visible = false;
Button2.Visible = true;
Button1.Visible = false;
Button3.Visible = false;
RoleDropDownList.Visible = false;
Label1.Text = "Привет, " + slogin + "!";
}
else
{
Label2.Visible = true;
Label2.Text = "Неверный логин или пароль";
}
TextBox1.Text = "";
TextBox2.Text = "";
connect.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
Session.Clear();
TextBox1.Visible = true;
TextBox2.Visible = true;
Label1.Visible = false;
Label2.Visible = false;
Label3.Visible = true;
Label4.Visible = true;
Label5.Visible = true;
Button1.Visible = true;
Button2.Visible = false;
Button3.Visible = true;
RoleDropDownList.Visible = true;
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("Registration.aspx");
}
}
}
Файл Raspisanie.aspx.cs
using System;
using System.Collections.Generic;
using System.Data.OleDb;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
namespace maxim
{
public partial class Registration : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/Content/Js/jquery-3.2.1.min.js",
});
}
protected void Button11_Click(object sender, EventArgs e)
{
string connectionstring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Study\7 semester\Information systems design\qqq.mdb";
var connect = new OleDbConnection(connectionstring);
connect.Open();
string rname, rsurname, rfathername, rlogin, rpassword;
long rtelephone;
rname = Convert.ToString(TextBox11.Text);
rsurname = Convert.ToString(TextBox12.Text);
rfathername = Convert.ToString(TextBox13.Text);
rtelephone = Convert.ToInt64(TextBox14.Text);
rlogin = Convert.ToString(TextBox15.Text);
rpassword = Convert.ToString(TextBox16.Text);
long srole;
srole = Convert.ToInt64(RegisrationRoleDropDownList.SelectedValue);
string sqlq = string.Empty;
if (srole == 1)
{
sqlq = "INSERT INTO Teacher(name_teacher,surname_teacher,father_teacher,telephone_teacher,login_teacher,password_teacher) VALUES( '" + rname + "', '" + rsurname + "', '" + rfathername + "', " + rtelephone + ", '" + rlogin + "', '" + rpassword + "')";
}
else if (srole == 2)
{
sqlq = "INSERT INTO Child(name_child,surname_child,father_child,telephone_child,login_child,password_child) VALUES( '" + rname + "', '" + rsurname + "', '" + rfathername + "', " + rtelephone + ", '" + rlogin + "', '" + rpassword + "')";
}
else if (srole == 3)
{
sqlq = "INSERT INTO Parent(name_parent,surname_parent,father_parent,telephone_parent,login_parent,password_parent) VALUES( '" + rname + "', '" + rsurname + "', '" + rfathername + "', " + rtelephone + ", '" + rlogin + "', '" + rpassword + "')";
}
Label17.Visible = true;
var mycom = new OleDbCommand();
mycom.CommandText = sqlq;
mycom.Connection = connect;
mycom.ExecuteNonQuery();
connect.Close();
}
}
}