问题标签 [adlds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
531 浏览

c# - C#:如何将特殊字符写入 ADLDS?

我正在尝试将联系人写入 ADLDS ldap,以便将它们用作 Yealink T48G 的电话簿。有时,联系人的姓名包含一些特殊字符,如“ö”、“ß”和“é”。如果这些字符包含在“givenName”或“displayName”字段中,电话和 ldap 客户端都无法正确显示它们,而是显示一些其他字符(例如“ö”->“ö”),但是“名称" 和 "dn" 字段正确显示这些字符。

如果我通过 ADSI-Edit 或任何其他工具插入联系人值,手机会正确显示姓名,但我的应用程序不再能够从 givenName 读取插入的特殊字符并显示一些问号框,但是 dn 和 name 字段是正确阅读。

我已经尝试使用 utf-8、utf-16、utf-32、iso-8859-1 和 windows-1252 作为我的应用程序的编码。

所以问题是如何使用 C# 将这些特殊字符存储在 ADLDS 实例中的 inetOrgPerson 的 givenName 属性中?

正确显示:

纠正特殊字符

显示不正确:

不正确的特殊字符

我的代码:

0 投票
0 回答
99 浏览

c++ - 如何使用 C++ 列出所有 AD LDS 实例

我知道我可以通过 dsdbutil 命令行工具查看在我的服务器上运行的所有 AD LDS 实例。但我想知道如何通过 C++ 列出在我的服务器计算机上运行的所有实例。请这件事让我发疯。

0 投票
0 回答
2525 浏览

powershell - 无法使用 powershell 通过 SSL 连接到 AD LDS

如果我使用我的凭据通过 powershell 查询我的 AD LDS 实例,则使用此代码效果很好:

但是,当我尝试通过指定端口 636 使用 SSL 连接到 AD LDS 实例时,我只收到错误消息:

Get-ADUser : Server instance not found on the given port

这是 ssl/port 636 的更新(不工作)代码:

相比之下,使用 C# 连接到实例可以使用此代码正常工作(来自我尝试 powereshell 脚本的同一台计算机):

在 powershell 中使用 SSL 连接到我的 AD LDS 实例时缺少什么?

0 投票
1 回答
2879 浏览

c# - LDAP 服务器使用 PrincipalContext 和 ADLDS 不可用

我们正在使用ADLDS进行用户管理和身份验证。我们可以毫无问题地成功查询实例。但是,如果尝试执行诸如SetPassword将失败的操作,甚至尝试创建新用户(如果未设置密码),则会失败。只要不是我尝试更新的密码,我就可以成功更新用户。我一直在阅读很多与此相关的不同文章,但没有找到解决方案。发帖看看我是否可以对这个问题有一些新的看法,感谢您的任何意见。

例子

错误 1

如果我尝试创建一个新的 UserPrincipal 并调用 Save 而不像上面的示例中那样设置密码,我遇到的第一个问题我得到一个异常A constraint violation occurred.,带有 InnerException 扩展消息0000052D: AtrErr: DSID-033807D7, #1:0: 0000052D: DSID-033807D7, problem 1005 (CONSTRAINT_ATT_TYPE), data 2246, Att 9005a (unicodePwd)

由于这个错误,我尝试在调用 Save 之前移动 SetPassword 以及我在网上找到的其他方法,例如从 UserPrincipal 获取 DirectoryEntry 并尝试调用 SetPassword 但得到不同的错误。

错误 2

在调用UserPrincipal.Save之前调用SetPassword,调用save时会报错The directory property cannot be found in the cache.

ResetPassword请注意,如果我尝试调用或获取 DirectoryEntry 并同时调用Invoke("SetPassword"...,也会发生相同的错误

错误 3

根据我的研究,大多数人似乎表明这可能与需要使用安全连接访问 AD LDS 有关。因此,我将服务器更改为包含 636 端口,string server = "myadldsserver.com:636"并将 ContextOptions 更改为ContextOptions.SimpleBind | ContextOptions.SecureSocketLayer.

在构造 PrincipalContext 时进行这些更改,我得到以下异常The server could not be contacted.,内部异常为The LDAP server is unavailable.HResult 为 -2146233087

JAVA 和 LDP

为了添加一些背景知识,我们确实在较旧的 Java 应用程序中编写了类似的代码。我们正在尝试将其中一些逻辑移植到 C# 中的 .NET 端。Java 中的代码使用包含在 AD LDS 服务器上生成的证书的 Java 密钥库。Java 应用程序使用 SSL 端口当然没有问题。我们知道服务器似乎配置正确,这只是如何从 .NET 端访问它的问题。

.NET 端是否有等价物,例如 Java 中的密钥库?我们知道可以与服务器建立 SSL 连接。我们也使用 LDP 验证了这一点。

目标

  • 能够在创建过程中创建新用户并设置其密码
  • 能够为用户重置密码或更改密码
  • 从 .NET 安全地连接到我们的 AD LDS 实例
0 投票
0 回答
295 浏览

ldap - Error when changing password in AD LDS

I have problem when implemented password updating of user in AD LDS: it throws below error when calling connection.Modify(). Does anybody have experience with ADLDS and its errors?

Operations Error:00002077: SvcErr: DSID-03380736, problem 5012 (DIR_ERROR), data 8237

Code as below:

The entry.DN includes: "CN=user1,CN=Users,CN=sampleInstance,DC=local,DC=com". By the way, I'm using SSL connection.

0 投票
1 回答
620 浏览

active-directory - 无法在 AD LDS 实例上的 ADSI Edit 中创建新计算机

0 投票
1 回答
887 浏览

active-directory - ADSI Edit 无法从扩展架构创建对象,并出现错误“传递了无效的目录路径名”80005000

所以我一直试图让 AD LDS 工作,我有一个较早的问题,其解决方案是扩展我解决的架构。

所以我尝试创建一个新的计算机对象,但我得到了错误。

手术失败。错误代码:传递了无效的目录路径名

在此处输入图像描述

所以另一个SO question 有这个错误,但对于用户脚本。这是微软的 GUI 小程序。

编辑:我重新启动了服务并删除了其他实验性 AD LDS 实例,然后重新启动 ADSI Edit 并且它起作用了。

0 投票
1 回答
235 浏览

active-directory - WSO2 身份服务器和带有 OU 的 Active Directory

我正在尝试将 WSO2IS 与 Active Directory LDS 一起使用。

使用商店展示和阅读用户是没有问题的。但是,在编辑用户时,会出现问题。

用户位于 AD 中的 OU 和同步的 AD LDS 中。(我们使用AD LDS添加用户属性,而不改变原来的AD。)

当我编辑一个用户时,它会被 IS 移动到 UserSearchBase。IS 仍然能够向用户显示 - 目前。
当 AD LDS 与 AD 同步时,用户将被移回其原始 OU。
IS 将无法找到用户,因为它仍在 UserSearchBase 根目录中的“新”位置寻找用户。

只有当我重新启动 IS 时,才会再次找到该用户。

我试图手动重新创建行为:

  1. 在位于 UserSearchBase 的 OU 中创建用户
  2. 使用 IS 编辑用户
  3. 将用户移回其在 AD 中的 OU 中的原始位置
  4. IS抛出错误

有没有办法告诉 IS 保留用户 DN/位置原样?
有没有办法禁用缓存?(不影响性能?)

问候,垫

0 投票
0 回答
578 浏览

c# - 使用C#操作AD LDS如何在不将该用户加入管理员组的情况下验证用户和密码

我正在尝试使用 C# 来操作 AD LDS。

我已经可以通过我的管理员帐户连接到 AD。像这样:

“用户名”和“密码”是管理员和密码。

然后我在我的服务器上创建一个用户。我设置了它UserPrincipalName as 'william'和它的密码。我也设置了它msDS-UserAccountDisabled = false

我尝试用 C# 记录这个用户

当我没有将 'william' 放入 'Administrator' 组时,代码entry.RefreshCache();总是抛出异常;但是当我将“william”放入“Adminitrator”时,这段代码突然起作用了。

我想这是关于许可的问题,但我无法弄清楚。

谁能告诉我为什么这可以工作。以及如何更改此方法。你知道我不想让用户成为管理员。

0 投票
0 回答
214 浏览

c# - AD DirSync need the old value of attribute as well as the new

I've been searching high and low and I can't find an example of how to get the old value of a changed attribute in ADLDS. I've created a web service to monitor for changes using Change Notifications, and that works fine. I'm able to get adds, changes and deletions. Now however, I need to be able to give the old and new attribute values for changes. I'm thinking I need to use DirSync as it will only return the attributes that have changed. However, it only seems to give me the new value. Is there anyway to return what the old attribute value was? Just in case this helps, here is the DirSync code I'm currently using:

Thanks for any help!!

Dave