2

我们有一个完全信任运行的 WPF 应用程序。

应用程序的一部分检查 Windows AD 组的成员资格。

这适用于 Windows 7 机器,但不适用于 Windows XP 机器。

错误发生在以下行:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain name");
4

1 回答 1

2

根据.NET Framework 3.5 中的管理目录安全主体一文,可能不需要“域名”变量。也就是说,如果您正在访问与您的应用程序在同一个域中的 Active Directory,则不需要该域名。

您可以在 PrincipalContext 构造函数中使用 name 参数,以便提供要连接到的特定目录的名称。这可以是特定服务器、机器或域的名称。请务必注意,如果此参数为空,AccountManagement 将尝试根据您当前的安全上下文确定连接的默认机器或域。

该问题的解决方案或解决方法(至少在 XP 和 W7 上都对我有用)是以下更改:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null);
于 2012-06-05T10:31:27.437 回答