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 パラメーターを使用します。これは、特定のサーバー、マシン、またはドメインの名前にすることができます。このパラメーターが null の場合、AccountManagement は現在のセキュリティ コンテキストに基づいて、接続の既定のコンピューターまたはドメインを決定しようとすることに注意してください。

この問題の解決策または回避策 (少なくとも XP と W7 の両方で機能したもの) は、次の変更です。

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