static internal Principal SearchResultAsPrincipal(SearchResult sr, ADStoreCtx storeCtx, object discriminant) { if (ADUtils.IsOfObjectClass(sr, "computer") || ADUtils.IsOfObjectClass(sr, "user") || ADUtils.IsOfObjectClass(sr, "group")) { return(storeCtx.GetAsPrincipal(sr, discriminant)); } else if (ADUtils.IsOfObjectClass(sr, "foreignSecurityPrincipal")) { return(storeCtx.ResolveCrossStoreRefToPrincipal(sr.GetDirectoryEntry())); } else { return(storeCtx.GetAsPrincipal(sr, discriminant)); } }
static internal Principal DirectoryEntryAsPrincipal(DirectoryEntry de, ADStoreCtx storeCtx) { if (ADUtils.IsOfObjectClass(de, "computer") || ADUtils.IsOfObjectClass(de, "user") || ADUtils.IsOfObjectClass(de, "group")) { return(storeCtx.GetAsPrincipal(de, null)); } else if (ADUtils.IsOfObjectClass(de, "foreignSecurityPrincipal")) { return(storeCtx.ResolveCrossStoreRefToPrincipal(de)); } else { return(storeCtx.GetAsPrincipal(de, null)); } }
internal static Principal DirectoryEntryAsPrincipal(DirectoryEntry de, ADStoreCtx storeCtx) { if (ADUtils.IsOfObjectClass(de, "computer") || ADUtils.IsOfObjectClass(de, "user") || ADUtils.IsOfObjectClass(de, "group")) { return storeCtx.GetAsPrincipal(de, null); } else { if (!ADUtils.IsOfObjectClass(de, "foreignSecurityPrincipal")) { return storeCtx.GetAsPrincipal(de, null); } else { return storeCtx.ResolveCrossStoreRefToPrincipal(de); } } }
static internal Principal SearchResultAsPrincipal(SearchResult sr, ADStoreCtx storeCtx, object discriminant) { if (ADUtils.IsOfObjectClass(sr, "computer") || ADUtils.IsOfObjectClass(sr, "user") || ADUtils.IsOfObjectClass(sr, "group")) { return storeCtx.GetAsPrincipal(sr, discriminant); } else if (ADUtils.IsOfObjectClass(sr, "foreignSecurityPrincipal")) { return storeCtx.ResolveCrossStoreRefToPrincipal(sr.GetDirectoryEntry()); } else { return storeCtx.GetAsPrincipal(sr, discriminant); } }