Как проверить, входит ли пользователь в группу AD?

Сначала я подумал, что приведенный ниже код работает, потому что, если у меня есть группа «ИТ», он работает правильно, потому что мое имя пользователя находится в группе ИТ в активном каталоге. Я узнал, что он всегда возвращает true, независимо от того, есть ли у меня имя пользователя в ИТ-группе или нет, и если я изменю его на любую другую группу, в которой я нахожусь, он всегда возвращает false. Любая помощь будет оценена по достоинству.

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        // tab control security for admin tab
        bool admin = checkGroup("IT");

        if ((admin == true) && (tabControl1.SelectedTab == tpHistory))
        {
            tabControl1.SelectedTab = tpHistory;
        }
        else if ((admin == false) && (tabControl1.SelectedTab == tpHistory))
        {
            tabControl1.SelectedTab = tpRequests;
            MessageBox.Show("Unable to load tab. You have insufficient privileges.",
                "Access Denied", MessageBoxButtons.OK, MessageBoxIcon.Stop);
        }
    }

    // check active directory to see if user is in Marketing department group
    private static bool checkGroup(string group)
    {
        WindowsIdentity identity = WindowsIdentity.GetCurrent();
        WindowsPrincipal principal = new WindowsPrincipal(identity);
        return principal.IsInRole(group);
    }
51
задан Ruben Steins 21 November 2014 в 02:43
поделиться