GroupPrincipalExt can not be used in a query against this store
-
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)Ex
-
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)Ex
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
-
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