|
I created a class so I can add extensions to the GroupPrincipal object but I am getting this error:
System.InvalidOperationException: Principal objects of type CloudPanel.AD.Custom.GroupPrincipalExt can not be used in a query against this store. at System.DirectoryServices.AccountManagement.ADStoreCtx.GetObjectClassPortion(Type principalType) at System.DirectoryServices.AccountManagement.ADStoreCtx.FindPrincipalByIdentRefHelper(Type principalType, String urnScheme, String urnValue, DateTime referenceDate, Boolean useSidHistory) at System.DirectoryServices.AccountManagement.ADStoreCtx.FindPrincipalByIdentRef(Type principalType, String urnScheme, String urnValue, DateTime referenceDate) at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate) at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, IdentityType identityType, String identityValue) at CloudPanel.AD.Custom.GroupPrincipalExt.FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue) at CloudPanel.Exchange.ExchPs.Get_DistributionGroup(String distinguishedname)
I don't really know why this isn't working since I have used this class before.
Here is a piece of the class I created (I didn't include all the DirectoryProperties since there are a bunch that I've added):
public class GroupPrincipalExt : GroupPrincipal
{
public GroupPrincipalExt(PrincipalContext context) : base(context) { }
public GroupPrincipalExt(PrincipalContext context, string groupName) : base(context, groupName) { }
public static new GroupPrincipalExt FindByIdentity(PrincipalContext context, string identityValue)
{
return (GroupPrincipalExt)FindByIdentityWithType(context, typeof(GroupPrincipalExt), identityValue);
}
public static new GroupPrincipalExt FindByIdentity(PrincipalContext context, IdentityType identityType, string identityValue)
{
return (GroupPrincipalExt)FindByIdentityWithType(context, typeof(GroupPrincipalExt), identityType, identityValue);
}
[DirectoryProperty("wWWHomePage")]
public string WWWHomePage
{
get
{
if (ExtensionGet("wWWHomePage").Length != 1)
return null;
return (string)ExtensionGet("wWWHomePage")[0];
}
set
{
this.ExtensionSet("wWWHomePage", value);
}
}
}
Here is how I am calling it:
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "dc.******.local", "DC=*****,DC=local", ContextOptions.SimpleBind, "******\\Administrator", "*********"))
{
GroupPrincipalExt group = GroupPrincipalExt.FindByIdentity(pc, IdentityType.DistinguishedName, distinguishedname);
if (group != null)
{
}
}
Any idea why this would be happening?
|
|
|
|
|
Have you tried adding the DirectoryObjectClassAttribute[^] to your GroupPrincipalExt class?
[DirectoryObjectClass("group")]
public class GroupPrincipalExt : GroupPrincipal
{
...
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Ahhh!! You are awesome. I copied and pasted the class and didn't copy it!
That fixed it. Thank you so much
|
|
|
|