/ / Jak zdobyć grupy użytkowników w Active Directory? - c #, .net, wpf, active-directory

Jak zdobyć grupy użytkowników w usłudze Active Directory? - c #, .net, wpf, active-directory

Używam z tego kodu:

   List<GroupPrincipal> result = new List<GroupPrincipal>();

// establish domain context
PrincipalContext MyDomain = new PrincipalContext(ContextType.Domain);

// find your user
UserPrincipal user = UserPrincipal.FindByIdentity(MyDomain , username);

// if found - grab its groups
if(user != null)
{
PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();

// iterate over all groups
foreach(Principal p in groups)
{
// make sure to add only group principals
if(p is GroupPrincipal)
{
result.Add(p);
}
}
}

ale w tej linii ( user.GetAuthorizationGroups() ) Mam wyjątek

Ten serwer nie działa

Odpowiedzi:

1 dla odpowiedzi № 1

W środowisku internetowym:

System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups

lub w Twoim kontekście:

user.GetGroups()

MSDN


1 dla odpowiedzi nr 2

Z tego, co pamiętam, wyjątek może wynikać z faktu, że nazwy domeny nie można rozwiązać za pomocą żadnego dostępnego DNS. Upewnij się, że tak jest, a wyjątek zniknie.


1 dla odpowiedzi nr 3

Sprawdź to, jeśli może ci to pomóc http://support.microsoft.com/kb/842789

Aktualizacja :

Otwórz program Visual Studio jako Administrator a następnie otwórz rozwiązanie. następnie spróbuj ponownie. Uważam, że problem wynika z uprawnień do aplikacji.


0 dla odpowiedzi nr 4

Mam dokładnie ten sam problem, gdy uruchamiam jeden z moich programów na komputerze (na komputerze deweloperskim) który nie należy do domeny, o którą pytam. Mam na myśli to, że mam kontekst, otrzymałem informacje o UserPrincipal i mam ten sam błąd, gdy wywołuję GetGroups (). Ten sam program uruchomiony na serwerze działa doskonale.

Próbowałem skonfigurować komputer programistyczny bezpośrednio z domeną DNS jako pierwszym DNS, ale było tak samo.

Próbowałem mocno skonfigurować adresy domeny i DC w pliku hosts, ale było tak samo.

Więc zdalnie debuguję mój program z maszyny wirtualnej, która była w domenie.


0 dla odpowiedzi № 5

Ponownie instaluję usługę Active Directory i problem został rozwiązany ...


0 dla odpowiedzi № 6

Jedna z grup, które próbujesz złapać, zawarta w GetGroups jest grupą administracyjną i wymaga specjalnego pozwolenia. Spróbuj ustawić użytkownika / hasło w swoim kontekście i użyj getGroups (kontekst)