私は午前中ずっとこの問題を解決しようとして以前の投稿を調べてきましたが、どれもうまくいかないようです。
私はコース管理者のためにADのユーザー管理インターフェースを修正してきました。ソリューションは開発サーバーで正常に機能しますが、必要なものだけを表示するという考えであり、本番環境で上記のエラーが発生します。
HostingEnvironment.Impersonate、サービス アカウントをドメイン管理者に昇格させるなど、見つけられるすべてのことを試しましたが、うまくいきませんでした。
public static List<GroupPrincipal> GetGroups(string client)
{
List<GroupPrincipal> List = new List<GroupPrincipal>();
DirectoryEntry ou = null;
GroupPrincipal group = null;
PrincipalContext context = null;
if (domain.Path.ToLower().Contains(DevDN.ToLower()))
{
context = new PrincipalContext(ContextType.Domain,
DevDom,
DevDN,
DevService,
DevServicePass);
}
else
{
context = new PrincipalContext(
ContextType.Domain,
LiveDom,
LiveDN,
LiveService,
LiveServicePass);
}
DirectorySearcher searcher = new DirectorySearcher(domain, "(&(ou=" + client + ")(objectClass=organizationalUnit))");
try
{
ou = new DirectoryEntry(searcher.FindOne().Path);
}
catch (System.Exception ex)
{
Log.WriteError("SUGM.ADLink.GetGroups", "Unable to locate client: " + ex.Message);
List = null;
return List;
}
try
{
foreach (DirectoryEntry groups in ou.Children)
{
if (groups.SchemaClassName == "group")
{
string name = groups.Name.Replace("CN=", "");
group = GroupPrincipal.FindByIdentity(context, name);
List.Add(group);
}
}
}
catch (System.Exception ex)
{
Log.WriteError("SUGM.ADLink.GetGroups", "Unable to add groups to list: " + ex.Message);
List = null;
return List;
}
return List;
}
デバッグ中にチェックがあり、すべての正しい値が渡されていますが、常に foreach ブロックで失敗します。
誰かが私が間違っていることを指摘できますか。
乾杯