vista validación validacion mac failed estado error .net active-directory directoryservices

.net - validacion - error de la validación del estado de vista mac



UserPrincipal.GetGroups falla con un error desconocido (1)

Agregar Environment.UserDomainName como argumento del nombre al PrincipalContext ayudó:

using (var context = new PrincipalContext(ContextType.Domain, Environment.UserDomainName))

Todavía no sé por qué PrincipalContext (ContextType.Domain) solo funciona para encontrar UserPrincipal y no los grupos del usuario. El mensaje de error COM "error desconocido" no es muy útil y el constructor PrincipalContext sobrecarga con solo el ContextType prácticamente no está documentado en MSDN. Huele como un problema con el framework .NET como lo señala Harvey Kwok.

Estoy tratando de obtener todos los grupos de Active Directory para un usuario, con el siguiente código:

private static IEnumerable<string> GetGroupNames(string userName) { using (var context = new PrincipalContext(ContextType.Domain)) { using (var userPrincipal = UserPrincipal.FindByIdentity(context, userName)) { var groupSearch = userPrincipal.GetGroups(context); var result = new List<string>(); foreach (var principal in groupSearch) { Log.LogDebug("User {0} is member of group {0}", userPrincipal.DisplayName, principal.DisplayName); result.Add(principal.SamAccountName); } return result; } } }

Este código encuentra correctamente el principal del usuario, pero falla cuando se llama a GetGroups con una excepción PrincipalOperationException: error desconocido (0x80005000).

Excepción de raíz:

at System.DirectoryServices.AccountManagement.ADStoreCtx.GetGroupsMemberOf(Principal foreignPrincipal, StoreCtx foreignContext) at System.DirectoryServices.AccountManagement.Principal.GetGroupsHelper(PrincipalContext contextToQuery) at System.DirectoryServices.AccountManagement.Principal.GetGroups(PrincipalContext contextToQuery) at [line of the GetGroup call]

Excepción interna (COMException):

at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) at System.DirectoryServices.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_AdsObject() at System.DirectoryServices.PropertyValueCollection.PopulateList() at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) at System.DirectoryServices.PropertyCollection.get_Item(String propertyName) at System.DirectoryServices.AccountManagement.ADUtils.RetriveWkDn(DirectoryEntry deBase, String defaultNamingContext, String serverN

Otro informe con este problema .

¿Alguna pista?