Вход в личный кабинетВход в личный кабинет

Войти через официальный сайт

Меню
  • Главная
  • Обратная связь
  • Политика конфиденциальности

Как сделать авторизацию в C: руководство и примеры рабочего кода | CoderNet

C#: создание формы подключения (входа) к бд ms sql

Можно сделать так: вот у Вас есть форма. На ней есть текстовые поля, в которые пользователь вводит свои логин и пароль. Пусть это tbLogin и tbPassword.

Также, допустим, у нас есть кнопка, которая вызывает процедуру проверки подключения.

Для подключения к БД используется так называемая connection string, куда мы поместим эти данные.

Тогда код, который будет выполнять проверку (для MS SQL Server), может быть примерно таким:

 private void Button1_Click(object sender, EventArgs e) { string connectionString = $"Provider=SQLOLEDB.1;Password={tbPassword.Text};Persist Security Info=True;User ID={tbLogin.Text};Initial Catalog=FsaRobot;Data Source=192.168.0.25"; using (SqlConnection cn = new SqlConnection(connectionString)) { try { cn.Open(); MessageBox.Show("Connected!"); } catch(Exception ex) { MessageBox.Show($"Not connected, error: {ex.Message}"); } } }

Теперь немного расширим наш сценарий.

Пускай у нас будет «форма проверки логина — пароля» и «главная форма».

Главная форма должна запускаться только в том случае, если проверка прошла успешно.

я бы написал такой код следующим образом.

Программы .NET WinForms обычно стартуют из static main() примерно так:

 using System; using System.Windows.Forms; namespace DbExample { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }

Здесь главное — то, что создаётся экземпляр формы Form1 и передаётся в метод Application.Run()

Сделаем, чтобы последовательно создавались две формы, форма логина и главная. В форму логина добавим публичное поле LoginSuccess. И будем в процессе создания форм его проверять:

 using System; using System.Windows.Forms; namespace DbExample { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); FLogin fl = new FLogin(); Application.Run(fl); if (fl.LoginSuccess){ FMain fMain = new FMain(); Application.Run(fMain); } else{ MessageBox.Show("Извините, проверка логина-пароля неудачна"); } } } }

Тогда FMain запустится только в случае удачной проверки логина — пароля.

Саму проверку можно организовать, чуть чуть поменяв первоначальный код под button1 в форме логина:

 public bool LoginSuccess=false; private void Button1_Click(object sender, EventArgs e) { string connectionString = $"Provider=SQLOLEDB.1;Password={tbPassword.Text};Persist Security Info=True;User ID={tbLogin.Text};Initial Catalog=FsaRobot;Data Source=192.168.0.25"; using (SqlConnection cn = new SqlConnection(connectionString)) { try { cn.Open(); LoginSuccess = true; } catch(Exception ex) { MessageBox.Show($"Not connected, error: {ex.Message}"); } } Close(); }

Конечно, здесь код немного упрощен, например, нет обработки ошибок.

(Если у кого то есть критика этого способа — модете написать в комментариях.)

Авторизация c# mysql., разделение пользователей!?

Представим, что у тебя есть таблица

user

В этой таблице

следующие колонки

:

Тогда на кнопку входа вешаешь событие клик и в ней пишешь следующий код:

string connStr = "server=localhost; port=3306; username=root; password= root; database=bd;";
string sql = "SELECT * FROM `user` WHERE `Name` = @un and `Password`= @up";
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand(sql, conn);
command.Parameters.Add("@un", MySqlDbType.VarChar, 25);
command.Parameters.Add("@up", MySqlDbType.VarChar, 25);
command.Parameters["@un"].Value = TextBox1.Text;
command.Parameters["@up"].Value = TextBox2.Text
adapter.SelectCommand = command;
adapter.Fill(table);
if (table.Rows.Count > 0)
{ userRole(); // метод, который будет открывать разные формы в зависимости от пользователя
}
conn.Close();

Далее мы создаем новый метод, который называем userRole

string UserName = TextBox1.Text;;
string connStr = "server=localhost; port=3306; username=root; password= root; database=bd;";
string sql = "SELECT User_Role FROM `user` WHERE `Name` = @un";
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
MySqlParameter nameParam = new MySqlParameter("@un", UserName); MySqlCommand command = new MySqlCommand(sql, conn); command.Parameters.Add(nameParam);
string Form_Role = command.ExecuteScalar().ToString();
Switch(Form_Role)
{
case "Администратор": Form.ActiveForm.Close(); Form1 f1 = new Form1(); f1.Show(); break;
default: Form.ActiveForm.Close(); Form2 f2 = new Form2(); f2.Show();
}
conn.Close();

Надо учитывать, что

имя пользователя должно быть индивидуальным

.

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

Если более опытные коллеги нашли какой-то недочет, то поправьте меня.
П.С. Надеюсь, что помог.

Настраиваем соединение с базой данных

Чтобы настроить соединение с базой данных, нужно будет создать специальный класс, например, «link». Вот как это можно реализовать:

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using MySql.Data.MySqlClient;  

using System.Windows.Forms;  

using System.Data;namespace Link_DB  

    class link  

        MySql.Data.MySqlClient.MySqlLink conn;  

        string myLinkString;  

https://www.youtube.com/watch?v=tjqBKY6L6rg

        static string host = «localhost»;  

        static string database = «dbtest»;  

Реализуем код авторизации

Возвращаемся к созданной форме и добавляем следующий код:

using System;  

using System.Collections.Generic;  

Создаем базу данных

Если у вас есть база данных — это хорошо; если нет, то давайте создадим новую «dbtest», где будем сохранять информацию о клиентах приложения. Внутри базы данных нужно будет создать таблицу «client» и определить ей следующие поля:

  • «id»(INT), добавив атрибут «AUTO_INCREMENT»;

  • «name»(VARCHAR(100));

  • «title»(VARCHAR(100));

  • «address»(VARCHAR(100)).

Создаем интерфейс формы

На этом шаге необходимо будет создать внешний вид вашей будущей формы авторизации. Представим, что в ней будет кнопка авторизации и 2 обязательных поля:

Создаем проект

Чтобы создать проект в Visual Studio, необходимо:

  • открыть меню по пути «Файл-Новый-Проект»;

  • по этому пути вам откроется окошко с новым проектом, где нужно будет заполнить пункты «Name», «Location», «Solution name».

Заключение

Теперь вы знаете, как можно сделать авторизацию в С. Помните, что это всего лишь один подход из десятков.

Похожее:  Как установить и настроить phpMyAdmin в Ubuntu 16.04 | DigitalOcean
Метки: авторизация, логин, менеджеры паролей, форма входа

Вход в личный кабинет © 2025

Политика конфиденциальности

➤