10

ここに私のコードのサンプルがあります

var domainContext = new PrincipalContext(ContextType.Domain, "domain_server_ip",  
            "domain_admin_username", "domain_admin_password");
var group = GroupPrincipal.FindByIdentity(domainContext, "mygroup");
var users = group.Members.Where(member => names.Contains(member.Name))
            .ToList();
users.ForEach(u => group.Members.Remove(u));
group.Save(domainContext); // <-- Here I get the error

ユーザーグループを取得しようとしても同じエラー

var user = UserPrincipal.FindByIdentity(domainContext, "username");
var gps = user.GetGroups(domainContext).ToList(); // <-- Here I get the error

接続して使ってみContextOptions.SimpleBindましたが変わりません。
接続にコンテナ名を設定しようとしましたが、何も変わりません。

グループとそのメンバーを取得できることに注意してください...そのため、グループを保存したり、ユーザー グループを読み取ったりできない理由がわかりません。

4

2 に答える 2

4

ネットワーク カードの IP 設定の最初の DNS サーバーとして、照会しているドメイン コントローラーの IP アドレス (最初の行 - domain_server_ip) を追加してみてください。(ここから拝借)

于 2016-01-28T15:37:58.850 に答える
0

私は同じ問題を抱えていました。

このケースの問題は、ターゲットが外部ドメイン サーバーであったことです。.net Ad Library は、一部の要求に対して外部 AD サーバー (サーバーが自分で解決するもの) から FQDN を明示的に取得しているようであり、すべての場合において PrincipalContext ctor に名前として指定した FQDN または IP を尊重しません。

私のクライアントは x.Domain1 にあり、外部広告サーバー (server1.x.Domain2) はドメイン x.Domain2 用です。

Domain1 の標準 DNS は、AdServer を server1.x.Domain1 として解決しました。この DNS は Domain2 について知りません。それが問題です。

これを解決するには、3つの選択肢があります

  1. 外部広告サーバーから ip をプライマリ dns として追加します (その後、アダプターを有効/無効にすることを忘れないでください) (私たちのオプションではありません)
  2. hosts ファイルを編集して 2 つのエントリを追加します: (テストには適していますが、本番用のオプションはありません)
    IpofDomain2Server
    server1.x.Domain2
  3. インフラストラクチャと話し合って、ドメイン 1 のドメイン 2 に上記の DNS エントリを追加します (DNS 転送?)
于 2018-12-06T13:00:30.393 に答える