0 / 0 / 0
Регистрация: 21.03.2021
Сообщений: 5
.NET 4.x

Авторизация в программе по ролям

23.03.2021, 00:28. Показов 2443. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день, столкнулся с проблемой.
Есть локальная бд mssql.
Есть форма для Администратора.
Есть форма для Пользователей.
Проблема с авторизацией.
В таблице юзеров есть поле: Роль(Администратор, Пользователь).
В чем суть проблемы:
Человек вводит свои данные, которые есть в таблице: логин и пароль
Нужно написать код, который по введенным данным определит какой тип пользователя (или какая роль) у этого человека и открыть соответствующую для этого человека форму.
Авторизацию по логину и паролю я сделал.
Заранее спасибо за помощь.
Код C#:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace kinosql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string role;
            string kol = 0;
 
 
            SqlConnection connection = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB; AttachDbFilename=" + Application.StartupPath + "\\kin.mdf; Integrated Security=True; ");
            {
            connection.Open();
            SqlCommand command1 = connection.CreateCommand();
            command1.CommandText = "SELECT Роль * FROM [user] WHERE ([Логин] = @Логин AND [Пароль] = @Пароль)";
            command1.Parameters.Clear();
            command1.Parameters.AddWithValue("Логин", textBox1.Text);
            command1.Parameters.AddWithValue("Пароль", textBox2.Text);
 
            SqlDataReader dataReader = command1.ExecuteReader();
                while (dataReader.Read())
                {
                    
                        st = dataReader.GetValue(4).ToString();
                                role = st;
                                label1.Text = role;
                                if (role == "Администратор")
                                {
                                    AdminForm adminf = new AdminForm();
                                    adminf.Show();
                                }
                                if (role == "Пользователь")
                                {
                                UserForm userf = new UserForm();
                                userf.Show();                   
                                }
                        kol++;
                    }
                    if (kol == 0)
                    {
                        MessageBox.Show("Неправильный логин или пароль", "АВТОРИЗАЦИЯ");
                    }
                    
                }
 
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2021, 00:28
Ответы с готовыми решениями:

Авторизация по ролям
Здравствуйте форумчане, прошу помощи ,потому что сам уже не знаю где искать. Вообщем , работал на asp net core 2.0 ,потом был перерыв...

Авторизация пользователя по ролям
Здравствуйте, такое дело, использую встроенную авторизацию в asp mvc4, так же прописал доступ в те или иные разделы по ролям public...

Доменная авторизация с разделением по ролям
Подскажите пожалуйста, кто может. Нужно сделать авторизацию через ActiveDirectory, притом с разбиением по ролям. Т.е. создал роли Admins и...

1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
23.03.2021, 15:06
https://www.cyberforum.ru/ado-... st15334663

Добавлено через 1 час 11 минут
Еще о "ролях".
Не следует путать роли и функциональные прерогативы пользователей в самом приложении, работающим с СУБД.

Роли (Role) - это термин SQL-сервера. Их назначение в разграничении прав (Grants) пользователей (точнее, соединений с т.зр. сервера) независимо от логики клиентских приложений. Достаточно мощное средство для "разруливания" доступа к БД поьзователей (Users).

Если Вам нужно предусмотреть несколько режимов работы приложения, в зависимости от конкретного пользователя, и при этом логика переключения никак не зависит от SQL-сервера, то лучше использовать другие термины, например "специализация", "режим", "функциональность" и т.д.
Например,
- если приложение дает возможность только смотреть данные, то специализация - обычный пользователь,
- если дает вводить оперативные данные (счета-фактуры, накладные), то специализация - ответственный пользователь (допустим, бухгалтер или кладовщик),
- если позволяет удалять любые данные, то специализация - администратор БД,
и т.д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2021, 15:06
Помогаю со студенческими работами здесь

Авторизация по ролям C#
Всем привет. Реализация авторизации по ролям. В чем ошибка? dataGridView1.CurrentCell = null; for (int i = 0; i <...

Авторизация по ролям
Здравствуйте. Как создать в приложении авторизацию по ролям?

Авторизация по ролям
Здравствуйте, пишу приложение. Сделал авторизацию через логин и пароль. Хочу добавить проверку роли(должности) входящего, по которой будет...

Авторизация в программе
Помогите с авторизацией в программе. мне надо что бы при вводе логина и пароля в поля программы. программа сверяла данные с полученными из...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru