Jak sprawdzić do jakich grup należy użytkownik....

0

Mam pytanie jak sprawdzić do jakich grup należy użytkownik. Chodzi mi o to że jeśli należy to dostaje dostęp do aplikacji a jeśli nie należy do danej grupy to wyskoczy mu MessageBox że nie ma uprawnień. Napłodziłem coś takiego ale nie jestem z tego zadowolony czy istnieje jakaś lepsza metoda by sprawdzić czy użytkownik należy do grupy by nie wykorzystywać pętli foreach i break oraz dodatkowej zmiennej??

int dostep = 0;
WindowsIdentity uzytkownik = WindowsIdentity.GetCurrent();
	foreach (IdentityReference grupa in uzytkownik.Groups)
				{
					NTAccount ntGroup = grupa.Translate(typeof(NTAccount)) as NTAccount;
					if (ntGroup.Value == "WINGROUP\\grupa1" || ntGroup.Value == "WINGROUP\\grupa2")
					{
					 dostep = 0;
					 break;
					 
					}
					else
					{
						dostep = 1;
					}
					
					
				}
				
	if (dostep = 0)
	{
	//Dostęp do apki
	}
	
	else
	{
	MessageBox.Show("Brak dostępu...");
	}


Z góry dziękuje za pomoc....

1

Możesz użyć metod Linq:

        static void Main(string[] args)
        {
            int dostep = 0;
            var currentIdentity = WindowsIdentity.GetCurrent();
            if (!currentIdentity.Groups.Any(x => x.Value == "WINGROUP\\grupa1"))
                dostep = 1;
        }
1

Przede wszystkim czemu dostep ma byc intem a nie boolem? Przy okazji w ifie brakuje ci == ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1