Tengo una pregunta, honestamente, no estoy muy seguro de cómo preguntar. Esencialmente tengo un poco de código que funciona fantásticamente en mi máquina local cuando lo ejecuto. Una vez que lo publico en nuestro servidor web de desarrollo, falla. No estoy seguro de si se trata de un problema de configuración de IIS, problema de web.config o un problema de codificación.C# Active Directory Contexto/UserPrincipal.IsMemberOf error
Aquí está el fragmento de código
bool isMember = false;
PrincipalContext ADDomain = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ADDomain, userID);
if (user.IsMemberOf(ADDomain, IdentityType.Name, groupName.Trim()))
{
isMember = true;
}
return isMember;
Cuando yo paso en un nombre de usuario y un grupo y me dice si el usuario es un miembro de ese grupo. No hay problema. Funciona muy bien en mi máquina. Fui a publicar ese código al servidor web y se produce un error cuando se golpea la línea
UserPrincipal user = UserPrincipal.FindByIdentity(ADDomain, userID);
que arroja este error:
[DirectoryServicesCOMException (0x80072020): An operations error occurred.]
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +788
System.DirectoryServices.DirectoryEntry.Bind() +44
System.DirectoryServices.DirectoryEntry.get_AdsObject() +42
System.DirectoryServices.PropertyValueCollection.PopulateList() +29
System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) +63
System.DirectoryServices.PropertyCollection.get_Item(String propertyName) +163 System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer() +521217
System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit() +51
System.DirectoryServices.AccountManagement.PrincipalContext.Initialize() +141
System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx() +42
System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate) +29
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95
Cosmic.Web.Login.btnSubmit_Click(Object sender, EventArgs e) in C:\cosmic\Cosmic.Web\Login.aspx.cs:79
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +154
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691
Cualquier idea que esto podría estar fallando?
Ya sabes qué, eso es lo que era. El servidor web no tiene las credenciales correctas para acceder a Active Directory. Pon algunas credenciales allí y funciona bastante mejor. ¡Gracias! – Seril