예제 #1
0
        private void Registr_Load(object sender, EventArgs e)
        {
            //проверка налчия администратора в системе
            try
            {
                SqlConnection con = BDconnect.GetBDConnection();
                con.Open();
                SqlCommand    sc = new SqlCommand("Select * from polzv where[роль] = '" + "Admin" + "'", con); //выбор данных из таблицы БД
                SqlDataReader dr;
                dr = sc.ExecuteReader();
                int count = 0;
                while (dr.Read())
                {
                    count += 1;
                }
                dr.Close();

                if (count == 0)
                {
                    MessageBox.Show("В базе данных нет администратора, пожалуйста добавьте его");
                    admin = 1;
                }
            }
            catch
            {
                MessageBox.Show("Отсутствует подключение к базе данных");
            }
        }
예제 #2
0
        //вход в программу
        private void metroLabel3_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = BDconnect.GetBDConnection();
                //DeShifrovka a = new DeShifrovka();
                //a.DeShifrowka(metroTextBox1.Text, "YchetPO");
                con.Open();
                string        log = Shifrovka(metroTextBox1.Text, "YchetPO");
                string        pas = Shifrovka(metroTextBox2.Text, "YchetPO");
                SqlCommand    sc  = new SqlCommand("Select * from polzv where[Логин] = '" + log + "' and[Пароль] = '" + pas + "'", con); //выбор данных из таблицы БД
                SqlDataReader dr;
                dr = sc.ExecuteReader();
                int count = 0;
                while (dr.Read())
                {
                    count += 1;
                }
                dr.Close();

                if (count == 1)
                {
                    SqlCommand IP = new SqlCommand("select [I_P] from polz where[login] = '" + log + "' ", con);
                    Program.namepolz = DeShifrovka(IP.ExecuteScalar().ToString(), "YchetPO");

                    //Автоматический вход с помощью реестра
                    if (metroToggle1.Checked)
                    {
                        try
                        {
                            RegistryKey saveKey = Registry.LocalMachine.CreateSubKey("software\\Ychpo");
                            saveKey.SetValue("Polz", "Auto");
                            saveKey.SetValue("login", log);
                            saveKey.SetValue("name", Program.namepolz);
                            saveKey.Close();
                        }
                        catch
                        {
                            MessageBox.Show("Пожалуйста запустите программу от имени администратора");
                            Application.Exit();
                        }
                    }

                    Program.loginpolz = log;
                    Glavnaya glavnaya = new Glavnaya();
                    glavnaya.Show();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Неверный логин или пароль");
                }
            }
            catch
            {
                MessageBox.Show("Отсутствует подключение к базе данных");
            }
        }
예제 #3
0
 public void buttonizmparol_Click(object sender, EventArgs e)
 {
     if (newpass.Text == newpasssubmit.Text)
     {
         try
         {
             if (newpass.Text != "")
             {
                 //изменение пароля для учетной записи пользователя
                 string        npass = Shifrovka(newpass.Text, "YchetPO");
                 SqlConnection con   = BDconnect.GetBDConnection();
                 con.Open();
                 SqlCommand izmenenieparolia = new SqlCommand("polzpass_edit", con);
                 izmenenieparolia.CommandType = CommandType.StoredProcedure;
                 izmenenieparolia.Parameters.AddWithValue("@id_polz", idpolz);
                 izmenenieparolia.Parameters.AddWithValue("@password", npass);
                 izmenenieparolia.ExecuteNonQuery();
                 con.Close();
                 MessageBox.Show("Ваш пароль успешно изменен");
                 Autoriz autoriz = new Autoriz();
                 autoriz.Show();
                 this.Close();
             }
             else
             {
                 MessageBox.Show("Не все поля заполнены");
             }
         }
         catch
         {
             MessageBox.Show("Отсутствует подключение к базе данных");
         }
     }
     else
     {
         MessageBox.Show("Пароли не совпадают");
     }
 }
예제 #4
0
        public void buttonsend_Click(object sender, EventArgs e)
        {
            string name;

            if (login.Text != "")
            {
                try
                {
                    string log = Shifrovka(login.Text, "YchetPO");
                    //Запись в переменные необходимых данных о пользователе
                    SqlConnection con = BDconnect.GetBDConnection();
                    con.Open();
                    SqlCommand emaill = new SqlCommand("select [Email] from polz where[login] = '" + log + "' ", con);
                    email = DeShifrovka(emaill.ExecuteScalar().ToString(), "YchetPO");
                    SqlCommand IP = new SqlCommand("select [I_P] from polz where[login] = '" + log + "' ", con);
                    name = DeShifrovka(IP.ExecuteScalar().ToString(), "YchetPO");
                    SqlCommand id = new SqlCommand("select [id_polz] from polz where[login] = '" + log + "'", con);
                    idpolz = id.ExecuteScalar().ToString();

                    //Формирование четырехзначного кода подтверждения
                    var x = new Random();
                    kodpodt = x.Next(1000, 9999);

                    //Отправка электронного письма с кодом подтверждения на почту
                    try
                    {
                        MailMessage mail       = new MailMessage();
                        SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");

                        mail.From = new MailAddress("*****@*****.**");
                        mail.To.Add(email);
                        mail.Subject = "Техническая поддержка";

                        mail.IsBodyHtml = true;
                        string htmlBody;
                        htmlBody = "<html><body><br><img src=\"https://storage.googleapis.com/thl-blog-production/2017/10/a5d6fc4b-banneri-320x110.jpg\" alt=\"ACORP\">" + @" 
                <br><br>Здравствуйте уважаемый(ая) " + name + @" !
                <br>Вы получили это письмо, потому что вы зарегистрированы в программе учета программного обеспечения и не помните пароль к своей учетной записи.
                <br>Высылаем Вам секретный код для активации вашего профиля.
                <br>                                                                                              
                <br>Код подтверждения:       <b>" + kodpodt + @"</b>
                <br>
                <br>Мы рады, что вы выбрали именно наш программный продукт и желаем Вам приятого пользования!</body></html>";

                        mail.Body = htmlBody;

                        SmtpServer.Port        = 587;
                        SmtpServer.Credentials = new System.Net.NetworkCredential("ychet.po", "Qq112233!");
                        SmtpServer.EnableSsl   = true;

                        SmtpServer.Send(mail);


                        Controls.Clear();


                        Label info = new Label();
                        info.AutoSize = false;
                        info.Left     = 40;
                        info.Top      = 100;
                        info.Width    = 400;
                        info.Height   = 50;
                        info.Text     = "     На вашу почту было отправлено сообщение с кодом подтверждения";
                        info.Font     = new Font(info.Font.FontFamily, 13);
                        Controls.Add(info);


                        kod.Left   = 96;
                        kod.Top    = 185;
                        kod.Width  = 211;
                        kod.Height = 30;
                        kod.Font   = new Font(kod.Font.FontFamily, 13);
                        Controls.Add(kod);

                        Button buttonsendkod = new Button();
                        buttonsendkod.Width  = 171;
                        buttonsendkod.Height = 30;
                        buttonsendkod.Left   = 116;
                        buttonsendkod.Top    = 240;
                        buttonsendkod.Font   = new Font(buttonsendkod.Font.FontFamily, 13);
                        buttonsendkod.Text   = "Отправить";
                        buttonsendkod.Click += this.buttonsendkod_Click;
                        Controls.Add(buttonsendkod);

                        exit.Width  = 22;
                        exit.Height = 22;
                        exit.Left   = 385;
                        exit.Top    = 13;
                        exit.Font   = new Font(exit.Font.FontFamily, 13);
                        exit.Text   = "X";
                        exit.Click += this.exit_Click;
                        Controls.Add(exit);
                    }

                    catch
                    {
                        MessageBox.Show("Что-то пошло не так, предполагаемые действия:\n \n 1 Проверте правильность указанного email \n 2 Проверте подключение к интернету \n 3 Перезагрузите программу от имени администратора \n 4 Обратитесь к администратору", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
                    }
                }
                catch
                {
                    MessageBox.Show("Что-то пошло не так, предполагаемые действия:\n \n 1 Проверте правильность написанного вами логина \n 2 Проверте подключение к базе данных");
                }
            }
            else
            {
                MessageBox.Show("Напишите пожалуйста ваш логин");
            }
        }
예제 #5
0
        private void metroLabel3_Click(object sender, EventArgs e)
        {
            if ((metroTextBox1.Text != "") && (metroTextBox2.Text != "") && (metroTextBox5.Text != "") && (metroTextBox6.Text != "") && (metroTextBox7.Text != ""))
            {
                try
                {
                    //шифрование данных, вбитых ползователем для занесения в бд
                    string F     = Shifrovka(metroTextBox1.Text, "YchetPO");
                    string I     = Shifrovka(metroTextBox2.Text, "YchetPO");
                    string O     = Shifrovka(metroTextBox4.Text, "YchetPO");
                    string email = Shifrovka(metroTextBox7.Text, "YchetPO");
                    string login = Shifrovka(metroTextBox6.Text, "YchetPO");
                    string passw = Shifrovka(metroTextBox5.Text, "YchetPO");

                    //проверка на наличие такого же логина в бд
                    SqlConnection con = BDconnect.GetBDConnection();
                    con.Open();
                    SqlCommand    sc = new SqlCommand("Select * from polzv where[Логин] = '" + login + "'", con); //выбор данных из таблицы БД
                    SqlDataReader dr;
                    dr = sc.ExecuteReader();
                    int count = 0;
                    while (dr.Read())
                    {
                        count += 1;
                    }
                    dr.Close();

                    if (count == 1)
                    {
                        MessageBox.Show("Такой логин уже присутствует в системе, придумайте другой");
                    }
                    else
                    {
                        //добавление нового пользователя
                        SqlCommand registr = new SqlCommand("polz_add", con);
                        registr.CommandType = CommandType.StoredProcedure;
                        registr.Parameters.AddWithValue("@F_P", F);
                        registr.Parameters.AddWithValue("@I_P", I);
                        registr.Parameters.AddWithValue("@O_P", O);
                        registr.Parameters.AddWithValue("@email", email);
                        registr.Parameters.AddWithValue("@login", login);
                        registr.Parameters.AddWithValue("@password", passw);
                        if (admin == 1)
                        {
                            registr.Parameters.AddWithValue("@dostup", 1);
                        }
                        else
                        {
                            registr.Parameters.AddWithValue("@dostup", 0);
                        }
                        registr.ExecuteNonQuery();

                        SqlCommand Polz = new SqlCommand("select [id_polz] from polz where[login] = '" + login + "' ", con);
                        string     id   = Polz.ExecuteScalar().ToString();

                        // при отсутствии администратора добавляются 3 основных роли в том числе и сам администратор
                        if (admin == 1)
                        {
                            // добавление роли и должности пользователь
                            SqlCommand rolep = new SqlCommand("role_add", con);
                            rolep.Parameters.AddWithValue("@naim_role", "Пользователь");
                            rolep.Parameters.AddWithValue("@polz_role", 0);
                            rolep.Parameters.AddWithValue("@zayavka_role", 1);
                            rolep.Parameters.AddWithValue("@po_role", 1);
                            rolep.Parameters.AddWithValue("@zakaz_role", 0);
                            rolep.CommandType = CommandType.StoredProcedure;
                            rolep.ExecuteNonQuery();

                            SqlCommand doljp = new SqlCommand("dolj_add", con);
                            doljp.Parameters.AddWithValue("@naim_dolj", "Пользователь");
                            doljp.Parameters.AddWithValue("@role_id", 1);
                            doljp.CommandType = CommandType.StoredProcedure;
                            doljp.ExecuteNonQuery();

                            // добавление роли и должности администратор
                            SqlCommand role = new SqlCommand("role_add", con);
                            role.Parameters.AddWithValue("@naim_role", "Admin");
                            role.Parameters.AddWithValue("@polz_role", 1);
                            role.Parameters.AddWithValue("@zayavka_role", 1);
                            role.Parameters.AddWithValue("@po_role", 1);
                            role.Parameters.AddWithValue("@zakaz_role", 1);
                            role.CommandType = CommandType.StoredProcedure;
                            role.ExecuteNonQuery();

                            SqlCommand dolj = new SqlCommand("dolj_add", con);
                            dolj.Parameters.AddWithValue("@naim_dolj", "Администратор");
                            dolj.Parameters.AddWithValue("@role_id", 2);
                            dolj.CommandType = CommandType.StoredProcedure;
                            dolj.ExecuteNonQuery();

                            SqlCommand sovm = new SqlCommand("sovm_add", con);
                            sovm.Parameters.AddWithValue("@polzsovm_id", id);
                            sovm.Parameters.AddWithValue("@dolj_id", "2");
                            sovm.CommandType = CommandType.StoredProcedure;
                            sovm.ExecuteNonQuery();

                            // добавление роли и должности сотрудник
                            SqlCommand rolesotr = new SqlCommand("role_add", con);
                            rolesotr.Parameters.AddWithValue("@naim_role", "Сотрудник");
                            rolesotr.Parameters.AddWithValue("@polz_role", 0);
                            rolesotr.Parameters.AddWithValue("@zayavka_role", 1);
                            rolesotr.Parameters.AddWithValue("@po_role", 1);
                            rolesotr.Parameters.AddWithValue("@zakaz_role", 1);
                            rolesotr.CommandType = CommandType.StoredProcedure;
                            rolesotr.ExecuteNonQuery();

                            SqlCommand doljsotr = new SqlCommand("dolj_add", con);
                            doljsotr.Parameters.AddWithValue("@naim_dolj", "Сотрудник");
                            doljsotr.Parameters.AddWithValue("@role_id", 3);
                            doljsotr.CommandType = CommandType.StoredProcedure;
                            doljsotr.ExecuteNonQuery();
                        }
                        else
                        {
                            SqlCommand sovm = new SqlCommand("sovm_add", con);
                            sovm.Parameters.AddWithValue("@polzsovm_id", id);
                            sovm.Parameters.AddWithValue("@dolj_id", "1");
                            sovm.CommandType = CommandType.StoredProcedure;
                            sovm.ExecuteNonQuery();
                        }
                        con.Close();
                        MessageBox.Show("Вы успешно зарегистрировались");
                        Autoriz autoriz = new Autoriz();
                        autoriz.Show();
                        this.Close();
                    }
                }
                catch
                {
                    MessageBox.Show("Отсутствует подключение к базе данных");
                }
            }
            else
            {
                MessageBox.Show("Не все поля заполнены");
            }
        }