2010-02-25 19 views
4

J'ai lu quelques articles sur la façon d'interagir par programme avec Active Directory. Une question demeure cependant, est-il possible de restaurer une transaction quelconque avec Active Directory? J'ai lu qu'il n'est pas possible dans un contexte où vous avez plusieurs contrôleurs de domaine car ils semblent se mettre à jour avec un numéro de séquence de mise à jour (USN) comme ils savent ce que USN à interroger lors de la communication ensemble ou quelque chose comme ça , en bref. Pour plus de détails appropriés, s'il vous plaît lire ces articles:Les restaurations sont-elles possibles avec Active Directory?

  1. USN Rollback
  2. Considerations when hosting Active Directory domain controller in virtual hosting environments

Mes exigences doivent être en mesure d'effectuer:

  • Créer;
  • Mise à jour;
  • Supprimer;
  • Sélectionner.

D'OU, et au cas où quelque chose ne va pas, j'ai besoin de revenir au début. Eh bien, vous savez tous ce qu'est une transaction après tout! Donc, je souhaite voir quelles sont mes options. Quelqu'un peut-il aider?

Merci!

Répondre

2

Non. Active Directory ne prend pas en charge les transactions.

S'il vous plaît voir: Is Active Directory transaction-aware?

+0

Il semble qu'il y ait quelques solutions de contournement. Implémentation d'une interface à partir du framework .NET afin que je puisse avoir une transaction côté client, au lieu d'une transaction côté serveur. Cela me paraît bon. Qu'est-ce que tu penses? –

+0

@mitch: Je n'arrive pas à obtenir un trafic expert à ma question. Ça vous dérange de jeter un coup d'œil? http://stackoverflow.com/questions/13147132/active-directory-group-membership-checking-in-net-4-5 –

1

Vous devez faire cela dans une méthode manuelle du code -

Lire toutes les propriétés changeantes
Mise à jour
Une erreur est survenue
Mise à jour des valeurs d'origine

Il y a un danger évident dans cette méthode, mais cela devrait être possible

+0

+1 Cela semble être le seul moyen de contourner le problème, également indiqué dans la solution-réponse que @Mitch Wheat fait référence à. –