Сначала я подумал, что код ниже работает, потому что, если у меня есть группа как "ИТ", он функционирует правильно, потому что мое имя пользователя находится в группе ИТ в активном каталоге. То, что я узнал, всегда возвращает 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);
}