我们有一个完全信任的WPF应用程序。
部分应用程序会检查Windows AD组的成员身份。
这适用于Windows 7计算机,但不适用于Windows XP计算机。
错误发生在以下行:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain name");
答案 0 :(得分:2)
根据文章Managing Directory Security Principals in the .NET Framework 3.5,可能不需要“域名”变量。也就是说,如果您在与应用程序相同的域中访问Active Directory,则不需要域名。
您在PrincipalContext构造函数中使用name参数 命令提供要连接的特定目录的名称。 这可以是特定服务器,计算机或域的名称。它的 重要的是要注意,如果此参数为null,则为AccountManagement 将尝试确定默认计算机或域 基于您当前的安全上下文的连接。
问题的解决方案或解决方法(至少在XP和W7上对我有用)是以下更改:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null);