問題があります:リモートサーバーからActive Directoryに接続する必要がありますが、コードはLdapConnection
クラスを使用する必要があります。私はこれが必要なのは、何らかのイベントが発生したとき(ユーザーが無効になったりグループ、データなどが変更されたときなど)、変更通知をテストできるからです。リモートサーバ上のOSは、Windows Server 2012リモートサーバーのLdapConnectionクラスを使用してActive Directoryに接続
は、私は次のコードでDirectoryServices
を使用してローカルからこれを実行するために管理されます
String ldapPath = "LDAP://XRMSERVER02.a24xrmdomain.info";
directoryEntry = new DirectoryEntry(ldapPath, @"A24XRMDOMAIN\username", "pass");
//// Search AD to see if the user already exists.
DirectorySearcher search = new DirectorySearcher(directoryEntry);
search.Filter = "(&(objectClass=user))";
SearchResult result = search.FindOne();
これは大丈夫と接続作品ですが、今、私はLdapConnection
を使用して接続する必要がありますクラス。
私は多くの方法でこのような何かを試してみましたが、そのどれもが私を助けていない:
LdapConnection connection = new LdapConnection(XRMSERVER02.a24xrmdomain.info);
var credentials = new NetworkCredential(@"A24XRMDOMAIN\username", "pass");
connection.Credential = credentials;
connection.Bind();
それは、資格情報が無効であるが、それは真実ではないと言います。
説明:
XRMSERVER02
- ドメインコントローラa24xrmdomain.info
- ドメインA24XRMDOMAIN
- ドメインは、あなたの助けのための
感謝を記録するために使用。
ドメイン全体を監視する場合は、変更通知の使用をお勧めしません。このテクニックは、属性変更のために指定したオブジェクトまたは複数のオブジェクトを監視する必要がある場合に使用するように設計されています。負荷の高い環境では、この手法はうまくいきません。変更に関するすべての通知を受け取ることはできません(ドメインに10Kユーザーを追加し、何が起こるかを確認する)。ドメイン全体のポーリング変更には、DirSyncまたはUSN技術を使用します。 – oldovets
あなたは私の質問については通知に関することを意味しましたhttp://stackoverflow.com/questions/39261263/notify-me-when-events-in-active-directory-occur-in-c-sharp ..私は通知を使用していますそのために私は他のテクニックに変更する方法がわからないので、おそらく5秒ごとにいくつかのTImerを設定してuSNChanged属性の状態を確認してください。私はオブジェクトの以前の状態を持っているので、そのように動作することができます。私は他の選択肢は何か分かりません。あなたは提供されたリンクで私の答えをチェックしてくださいできますか?ありがとう – Dan
uSNChangedテクニックについては、次の手順を実行できます。1. DCに接続します。 2.このDCから現在のhighestCommitedUsnを照会します(hcusnという名前)(https://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domaincontroller.highestcommittedusn(v=vs.110).aspxを参照) 。 3.以前の値が必要な場合は、LDAPフィルタで(uSNChanged <= hcusn)を指定して、このDCから現在のADスナップショットを収集します。 4. hcusnをディスクに保管します。 5.同じDCに再度接続します。 6. highestCommitedUsn(hcusnnewという名前)を照会します。4. LDAPフィルターで&(uSNChanged> hcusn)(uSNChanged <= hcusnew)を指定して変更を収集します。 – oldovets