Active Directory 是否支持事务?

2024-04-13

简单的问题,但我在任何地方都找不到答案: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 协议和规范都没有事务的概念,因此这实际上是不可能的。

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

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

一些随意的想法——我guess微软有可能将类似的东西添加到 Active Directory 中(因为它不仅仅是justLDAP),但如果他们还没有的话,他们可能不会。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Active Directory 是否支持事务? 的相关文章

随机推荐

  • Rails ActiveRecord 协会

    好的 这是我的问题 我有 3 个不同的模型 人员 角色 客户和商店 客户有很多商店 也可以有很多人 商店里人很多 人们有各种各样的角色 1 人可以在多个商店工作 并且他们在每个商店可能具有不同的角色 例如 乔可能是一家商店的助理经理和另一家
  • 如何在两个模块之间共享服务 - @NgModule 以角度而不是在组件之间?

    在我的应用程序中 我有两个不同的引导模块 NgModule 在一个应用程序中独立运行 没有一个角度应用程序位独立的引导模块 现在我希望它们应该相互通信并共享数据 我知道通过 Injectable服务作为模块中的提供者 我可以在所有组件中共享
  • 使用 Apache Commons Configuration 通过属性文件中的值列表进行变量插值,即 ${variable}

    我正在使用 Apache Commons Configuration 来读取属性文件 并且我完全能够进行变量插值 并且还能够以列表形式检索多值属性 但是 我无法正确加载具有多个值的属性 其中一个值是对另一个多值属性的引用 变量插值 这是我的
  • 编辑默认工具栏时 Microsoft Visual Studio“未知位图格式”

    我已使用项目创建向导使用 Microsoft 基础类库 MFC 创建了一个应用程序 我创建了一个多文档界面 MDI 应用程序 该向导创建您可以使用的虚拟工具栏和菜单 我扩展了默认工具栏 没有任何问题 但是现在当我尝试通过资源视图编辑它时 我
  • 使用文本字符串创建 Pandas 数据框中出现的单词矩阵

    我有一个包含一列文本数据的 Pandas 数据框 我想将此文本数据的每一行与我感兴趣的单词列表进行比较 比较应该生成一个矩阵 显示该行数据的文本中单词 0 或 1 的出现情况 输入数据框 text That bear talks The s
  • 我可以在 Xamarin Forms 上检查设备中的可用存储空间吗?

    我正在尝试制作一个应用程序 要求我经常将记录的数据发送到 firebase 当网络中断或电池即将耗尽时 我会保存所有未本地存储到 firebase 中的数据 然而 要做到这一点 我需要大约 20 MB 的数据 我的数据相当大 话虽这么说 我
  • 在 Swift 中从字符串中提取浮点数

    我可以使用下面的代码提取数字 let weightt x components separatedBy CharacterSet decimalDigits inverted joined separator 例如 我从字符串 0 1kg
  • Eclipse JPA 项目更改事件处理程序(等待)

    每当我尝试构建项目时 为什么会收到 JPA 项目更改事件处理程序 正在等待 我的工作区中有一些 JPA 项目 需要花费很多时间来构建我的项目 它还会导致 GC 超出限制 分配给 eclipse 的堆空间为 6GB 我目前正在使用开普勒 He
  • Jenkins 管道在条件内验证特定格式的文件是否存在

    我需要验证特定目录中是否存在 doc 格式的文件 根据该条件何时执行 即 当在具有 doc 扩展名的目录中找到文件时 它应该继续执行步骤 下面的代码无法找到 doc格式的文件 when expression return fileExist
  • 复选框列表

    我有两个域类 class Contract String number static hasMany statements Statement class Statement String code static hasMany contr
  • qgraph可以在实际边缘之外渲染边缘标签吗?

    为了便于阅读 我正在尝试在 qgraph 中的实际边缘之外插入边缘标签 我特别不喜欢在标签下方添加白色背景的选项 它会弄乱边缘 根据手册 只能沿线调整边缘标签位置 而不能在侧面调整 以前有人为此苦苦挣扎吗 是否可以规避这个问题 干杯 似乎没
  • 更改 GKE 上的 kubernetes 主环境变量

    我想在 GKE 上使用我的 Kubernetes 集群启用 Stackdriver 日志记录 这里有说明 https kubernetes io docs user guide logging stackdriver https kuber
  • PLS-00394: fetch 语句的 INTO 列表中的值数量错误

    这是我在存储过程中创建游标的尝试 Second Stored Procedure CREATE OR REPLACE PROCEDURE sp GetDiscountedRate DiscountCode IN VARCHAR2 Perce
  • 如何在Vue.js中添加一堆全局过滤器?

    我想在 Vue js 应用程序中使用一些全局过滤器 我知道我需要在主 Vue 实例之前定义它们 但从代码组织的角度来看 将它们全部放在 main js 文件中对我来说似乎并不正确 我怎样才能将定义放在一个单独的文件中 导入到 main js
  • GitHub API v3:确定用户是否是组织的所有者

    很容易确定用户是否是团队成员如果你知道id http developer github com v3 orgs teams get team member GET teams id members user 但如何才能轻松确定每个组织都拥有
  • Perl 字符串是不可变的吗?

    当我对字符串进行串联时 幕后发生了什么 my short short short cake Perl 是否有效地创建一个新字符串 然后为其分配正确的变量引用 或者 Perl 字符串本质上总是可变的 这个问题的动机来自我与一位同事的讨论 他说
  • 模板构造函数优先于普通复制和移动构造函数?

    以下程序的输出 include
  • 如何检查 VBA DAO 记录集中是否为空?

    我在数据库中有一个可选字段 我正在使用 DAO 记录集提取该字段 在将字段与其他字段连接之前 我需要检查该字段是否已设置 到目前为止 我已经尝试过以下代码片段Is and 这是明显错误的语法 Is 无济于事 看来如果我使用 它不会正确地与N
  • 添加资源文件到VC6 dll

    我有许多 VC 6 0 项目 DSP 它们构建到没有资源文件的 dll 中 知道如何将资源添加到现有项目中吗 该项目很快就会发布一个主要版本 我想为那些目前缺少的 dll 添加一个文件版本 dll 将在发布之前重新编译 因此我只是尝试使这些
  • Active Directory 是否支持事务?

    简单的问题 但我在任何地方都找不到答案 Active Directory 是否支持事务 换句话说 以下更改是否会回滚 因为我没有调用scope Complete using var scope new TransactionScope Di