gpt4 book ai didi

.net - Active Directory 事务感知吗?

转载 作者:行者123 更新时间:2023-12-03 14:59:42 24 4
gpt4 key购买 nike

简单的问题,但我在任何地方都找不到答案:Active Directory 事务感知吗?

换句话说,是否会回滚以下更改(因为我没有调用 scope.Complete() ):

using (var scope = new TransactionScope())
{
DirectoryEntry entry = ...;
entry.Properties["givenName"].Value = "New Given Name";
entry.CommitChanges();
}

如果没有,是否有可能以某种方式启用它?现在我有执行数据库更新和相应的 AD 更新的代码,如果 AD 更新以某种方式失败,我有补偿逻辑。该解决方案远非最佳。

亲切的问候,
罗纳德·维尔登伯格

最佳答案

简短的回答是——不。 ActiveDirectory 本质上是一个 LDAP 实现(有一些花哨的扩展,但它的核心仍然是 LDAP)。 LDAP 协议(protocol)和规范都没有事务的概念,所以这确实是不可能的。

可以在客户端模拟事务,但您必须自己做或使用 Spring,我相信它会为您做这件事 - 显然这不像您期望的服务器端事务那样安全数据库。关于 Spring 的注释 - 我不完全确定 Spring.NET 是否支持 LDAP 的“事务”,但它们在 Spring 的 Java 实现中有类似的东西。可能值得一看。

通过阅读有关 CommitChanges 方法的文档,它只是说它将您的更改发送到服务器 - 如果它没有说明它们是事务安全的,我会假设它们不是。

一些随机的想法——我猜微软可能会在 ActiveDirectory 上添加这样的东西(因为它不仅仅是 LDAP),但如果他们还没有的话,他们可能不会。

关于.net - Active Directory 事务感知吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1244985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com