Size: a a a

2020 March 22

G

Gopneg in С#
у тебя задача-то какая изначально?
источник

G

Gopneg in С#
а не вот это вот говно
источник

W

WLADYSLAW in С#
группа 1 – пользователи группы могут просматривать и редактировать в textbox заданную вами строку;
группа 2 – пользователи группы могут просматривать в textbox заданную вами строку, но не могут редактировать;
группа 3 – пользователи группы не должны видеть в textbox заданную вами строку в textbox.
Для подтверждения корректности реализации правил разграничения доступа, пользователя необходимо переместить из группы в группу и проверить его возможности.
источник

G

Gopneg in С#
так, хорошо
а нахуя ты логинишь юзера внутри приложения?
источник

G

Gopneg in С#
проверять надо просто текущего юзера же, а не логинить его, создавая незакрытые хендлы и слепки ролей
источник

W

WLADYSLAW in С#
Убрать проверку авторизации
источник

G

Gopneg in С#
что "убрать проверку авторизации"?
источник

W

WLADYSLAW in С#
Чтобы убедиться правильно он ввел пароль и входит ли он в группу
источник

W

WLADYSLAW in С#
Авторизация нужна
источник

G

Gopneg in С#
нихуя подобного, аутентифиацией занимается винда
ты понаделал хуеты
источник

G

Gopneg in С#
1. убираешь нахер запрос логина и пароля и все говно что связано с этим кодом
2. наслаждаешься рабочим решением
источник

W

WLADYSLAW in С#
try
           {
            string gr1 = @"LENOVO-IDEAPAD3\Group_1";
            string gr2 = @"LENOVO-IDEAPAD3\Group_2";
            string gr3 = @"LENOVO-IDEAPAD3\Group_3";
 IntPtr th = IntPtr.Zero;
               WindowsIdentity.Impersonate(th);
                bool log = LogonUser(txtLogin.Text, "workgroup", txtPassword.Text, 2, 0, ref th);
               if (log)
               {

                   MessageBox.Show("Успех", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
                   WindowsIdentity MyIdentity = WindowsIdentity.GetCurrent();
                   WindowsPrincipal currentUser = new WindowsPrincipal(MyIdentity);
                   if (currentUser.IsInRole(gr1) == true)
                   {
                       MessageBox.Show($"Пользователь входит Group1");
                       textBox1.Text = "Текст информации";
                   }
                      if (currentUser.IsInRole(gr2)==true)
                   {
                       MessageBox.Show($"Пользователь входит Group2");
                       textBox1.ReadOnly = true;
                   }

                   if (currentUser.IsInRole(gr3) == true)
                   {
                       MessageBox.Show($"Пользователь входит Group3");
                       textBox1.Visible = false;
                   }
               }
               else
               {
                   MessageBox.Show("Неудача", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Error);
               }
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message, "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Error);
           }
источник

W

WLADYSLAW in С#
bool log = LogonUser(txtLogin.Text, "workgroup", txtPassword.Text, 2, 0, ref th); - это убрать!
источник

G

Gopneg in С#
да
источник

W

WLADYSLAW in С#
И что останеться
источник

G

Gopneg in С#
проверка текущего юзера на вхождение в группу
в чем и состоит задача и логичный функционал подобного решения
источник

W

WLADYSLAW in С#
Удалил проверку авторизации и не работают проверки
источник

G

Gopneg in С#
ты осознаешь что оно проверяет текущего юзера?
источник

W

WLADYSLAW in С#
Создал 3 группы и одного пользователя, зашел под этим пользователем, запустил программу и проверки игнорируются
источник

W

WLADYSLAW in С#
Я как раз зашел под него
источник