Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 18.11.2017
Сообщений: 95
1

Идентификация прав пользователя посредством ввода соответствующего пароля

27.03.2019, 19:00. Показов 1142. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, ситуация такая, есть некоторое количество форм, где ведётся некоторый ввод-вывод данных (с этой частью нет проблем), но в самой первой форме вводится пароль: если оный соответствует "admin", любые манипуляции с вводом разрешены, если введён пароль "user", пользователь по прежнему может передвигаться по формам, однако не может ничего вводить (включается ReadOnly, если я правильно понимаю).

Собственно вопрос, как это реализовать?

Чтобы вопрос не был голословным, оставляю небольшой кусок своего кода (предпологаемо в моём if должен быть ещё один if, который собственно и включит ReadOnly режим, в случае ввода пароля "user" (помечено комментарием)):

C#
1
2
3
4
5
6
7
8
9
10
11
12
        
private void button1_Click(object sender, EventArgs e)
        {
            if (textBox2.Text == "user" || textBox2.Text == "admin")
            {
                Form2 newForm = new Form2();
                newForm.Show();
                //if ???
            }
            else
                MessageBox.Show("Incorrect password");
        }
Добавлено через 1 час 47 минут
Поднимаю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2019, 19:00
Ответы с готовыми решениями:

Избавить пользователя от ввода пароля
Всем добрый день! подскажите как программно подсовывать access пароль для доступа к SQL...

Окно ввода имени и пароля пользователя
Пишу одну программку к которой мне нужно сделать окно ввода имени и пароля пользователя..подскажите...

Определить пользователя по интенсивности скорости ввода пароля
Добрый вечер, форумчане. Зашла интересная задача. Каждый пользователь вводит пароль с разной...

Загрузка запароленного пользователя по умолчанию, без ввода пароля
Здравствуйте. Нужно задать пользователю пароль на windows 7 и сделать так чтобы при входе...

5
-2 / 24 / 8
Регистрация: 19.02.2012
Сообщений: 436
27.03.2019, 19:29 2
Ну так сделай так

C#
1
2
3
4
5
if (txt1box.Text == "user") { //обрабатываешь для юзера}
else 
{   if (txt1box.Text == "admin") { //обрабатываешь для админа}
       else  {}
}
0
Администратор
Эксперт .NET
17542 / 13765 / 5298
Регистрация: 17.03.2014
Сообщений: 28,247
Записей в блоге: 1
27.03.2019, 20:48 3
LaSTiqq, я бы использовал систему ролей на основе IPrincipal/IIdentity. Форма где ввводится логин/пароль создает и возврашает экземпляр IPrincipal:
C#
1
2
3
4
5
6
IPrincipal GetPrincipal()
{
    GenericIdentity identity = new GenericIdentity(userName);
    string[] roles = userName == "admin" ? new[]{"admin"} : new string[0];
    return new GenericPrincipal(identity, roles);
}
После авторизации мы сохраняем этот principal и используем метод IsInRole чтобы определить доступно ли редактирование. Во вторую форму principal можно передать через конструктор.
C#
1
2
3
IPrincipal principal;
...
bool canEdit = principal.IsInRole("admin");
0
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
01.04.2019, 11:21 4
LaSTiqq,
По простецки если.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Ползователь = TextBox1.text
//После авторизации
 
//А везде в коде пропиши.
if (Пользователь == "admin") 
{
CanEdit = true
}
 
//А дальше в коде контролируешь все
if (CanEdit==false) 
{
//Выполняешь какое то действие, блокируешь что надо 
}
Общий смысл такой, я думаю, понятно что надо ссылки использовать или Static.
1
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
01.04.2019, 15:14 5
LaSTiqq, Вот посмотри. Не знаю на сколько правильная реализация. За то все просто и понятно.База 3.rar
0
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
01.04.2019, 15:23 6
LaSTiqq, Когда вводишь пароль admin TextBox активный, когда что то другое, то tb блокирется и пишет я заблокирован. Правильность ввод пароля не делал.

Добавлено через 6 минут
Создаем класс со сатик полем для того чтобы знать какие у нас права доступа

C#
1
2
3
4
5
    class CanEditing
    {
        public static bool CanEdit { get;  set;}
         
    }
Проходим авторизацию

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void btn_enter_Click(object sender, EventArgs e)
        {
            
            this.Hide();
            password = tb_password.Text;
 
            if (password=="admin")
            {
                CanEditing.CanEdit = true;
            }
            main_form Main = new main_form();
 
            Main.Show();
            
        }
в конструкторе main form проверяем. Если не админ, то блокируем, что нам нужно

C#
1
2
3
4
5
6
7
8
9
10
        public main_form()
        {
            InitializeComponent();
 
            if (!CanEditing.CanEdit)
            {
                textBox1.Text = "Я заблокирован";
                textBox1.Enabled = false;
            }            
        }
0
01.04.2019, 15:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2019, 15:23
Помогаю со студенческими работами здесь

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

CodeIgniter: Почему поля ввода имени пользователя и пароля заполняются автоматически?
Добрый день, всем! Изучаю CodeIgniter. Он сейчас пустой (только установлен). Начал с регистрации...

Файл pgpass, запуск psql от имени другого пользователя без ввода пароля
Написал скрипт на питоне, который выдирает с базы данных информацию. Так как линукс сервер рабочий,...

Win10 ПК загрузка доходит до экрана ввода пароля и выбора пользователя, и экран гаснет, но ПК работает дальше
Здравствуйте, дорогие форумчане. Столкнулся с очень неприятной проблемой на ПК. Для начала...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru