Quindi ho una domanda onestamente non sono abbastanza sicuro di come chiedere. Essenzialmente ho un po 'di codice che funziona in modo fantastico sul mio computer locale quando lo eseguo. Una volta che lo pubblico sul nostro web server di sviluppo, fallisce. Non sono sicuro che si tratti di un problema di installazione di IIS, di un problema di web.config o di un problema di codifica.C# Directory attiva PrincipalContext/UserPrincipal.IsMemberOf error
Ecco il frammento di codice
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;
Dove mi passa in un nome utente e un gruppo e mi dice se l'utente è un membro di tale gruppo. Nessun problema. Funziona alla grande sulla mia macchina. Sono andato a pubblicare quel codice al server web e viene a mancare quando colpisce la linea
UserPrincipal user = UserPrincipal.FindByIdentity(ADDomain, userID);
getta questo errore:
[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
Tutte le idee in cui questo potrebbe essere fallendo?
Sai cosa, è quello che era. Il server web non ha le credenziali giuste per colpire Active Directory. Metti alcune credenziali lì e funziona un po 'meglio. Grazie! – Seril