问题标签 [directoryentry]

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 回答
232 浏览

c# - DirectoryServicesCOMException 并不总是抛出 - 有时是 COMException

我正在使用 .NET 4.0 并调用 DirectoryEntry.NativeObject 来针对 AD 验证用户的凭据。

如果在 AD 中为用户设置了“用户下次登录时必须更改密码”标志,DirectoryEntry.NativeObject 调用将引发 DirectoryServicesCOMException。然后,我可以使用 DirectoryServicesCOMException 中的信息来确定失败是否是因为设置了更改密码标志。

这适用于某些 Windows 2008 AD 服务器,但适用于其他 Windows 2008 AD 服务器,而不是抛出 DirectoryServicesCOMException,而是抛出 COMException,我无法确定失败的原因,因为我没有提供的相同信息DirectoryServicesCOMException。

我不确定服务器之间的哪些差异会导致引发不同的异常。

有谁知道为什么在某些服务器上抛出 COMException 而不是 DirectoryServicesCOMException?

如果抛出 COMException,有谁知道如何获取有关错误的其他信息?HRESULT 是不够的。

谢谢。

0 投票
1 回答
1668 浏览

active-directory - 尝试为 DirectoryEntry 刷新缓存时抛出 DirectoryServicesCOMException (0x80072020)

我编写了一个非常示例的测试程序,并将其作为本地系统帐户在域机器中运行。这是代码的样子:

域的 NetBIOS 名称是“test”,完整的域名是“test.com”。“dc.test.com”是 DC FQDN,“gc.test.com”是 GC FQDN。

它适用于“test.com”、“dc.test.com”和“gc.test.com”,但它会为“test”和“Environment.UserDomainName”抛出 DirectoryServicesCOMException (0x80072020)。

详细运行结果为:

如果我以 domian admin 帐户运行它,一切正常。知道是什么原因造成的吗?十分感谢!

0 投票
0 回答
567 浏览

authentication - DirectoryEntry 身份验证抛出 COMException 而不是 DirectoryServicesCOMException

我正在使用 .NET 并创建一个 DirectoryEntry 并访问 NativeObject 成员以针对 AD 验证用户的凭据。

在某些情况下,登录会失败,因为设置了“用户下次登录时必须更改密码”标志,或者由于登录时间不匹配,当前不允许用户登录。

我想区分是否发生了其中一种情况,或者用户是否输入了错误的密码。

如果我使用参数 AuthenticationTypes.None 创建 DirectoryEntry 对象,如果登录失败,则会引发 DirectoryServicesCOMException。此异常中的信息可用于确定例如是否设置了“密码更改”标志。

不幸的是,使用 AuthenticationTypes.None 不是一种安全的方式,因为会传输密码。

如果我使用参数 AuthenticationTypes.Secure 创建 DirectoryEntry 对象,则会引发 COMException 而不是 DirectoryServicesCOMException。此异常非常通用,因为它始终具有错误代码 ERROR_LOGON_FAILURE。我无法区分用户是否输入了错误的密码或是否必须更改密码。

MSDN 文档说:如果设置了 AuthenticationTypes.Secure,WinNT 提供程序使用 NTLM 对客户端进行身份验证。我想这会导致一种不同的行为,即只抛出一个 COMException 。

有效,但不安全:

安全,但只抛出 COMException:

第一个选项使用基本身份验证并引发特定的 DirectoryServicesCOMException,第二个选项使用 NTLM 并仅引发通用 COMException。

有谁知道我如何检测用户是否必须更改密码、帐户是否被锁定或过期、登录时间无效……或者用户是否输入了错误的密码?

非常感谢。

0 投票
1 回答
1612 浏览

c# - 以编程方式创建应用程序池,错误设置“ManagedPipelineMode”

我正在使用以下代码以编程方式为 IIS 6 (Windows Server 2003R2) 创建应用程序池,但在尝试设置ManagedPipelineMode

尝试 1

尝试 2

无论哪种方式都会引发相同的异常。

例外:

0 投票
1 回答
984 浏览

c# - 遍历 DirectoryEntries 时出现异常

以这种方式遍历 DirectoryEntry 对象时出现异常。我的问题是,我应该在哪里做哪些检查来确定是否没有 directoryEntries sites

例外

指数超出范围。必须是非负数且小于集合的大小。
参数名称:
System.Collections.CollectionBase.System.Collections.IList.get_Item 处的索引(Int32 索引)

0 投票
2 回答
2218 浏览

c# - 检查本地组是否已存在的优雅方法

有没有办法找出本地组是否已经存在?我的“最佳”解决方案通过捕获异常来工作。有没有办法在不捕获异常的情况下实现相同的目标?

0 投票
2 回答
7610 浏览

c# - 服务器上的 LDAP 身份验证

我需要使用输入用户名和密码在 c# 中验证 LDAP 用户。

在这里我得到了所需的记录(可以查看详细信息)但是当我尝试使用下面的代码对其进行身份验证时,它总是说身份验证失败

它总是导致带有错误消息的 catch 块

登录失败:未知用户名或密码错误。失败:未知用户名或密码错误。

我确定给定的密码是正确的。

请建议。

根据 Saad 的建议,我通过代码进行了更改

它仍然给出错误

我想我对在哪里给出哪个参数感到困惑。我有 LDAP 服务器地址,例如 123.123.12.123 域名,例如 abc.com 管理员用户名和密码 以及 需要验证的用户名和密码。(在 OU=new users,OU=KK 中)

我正在使用服务器名、域、管理员用户名和密码创建目录条目

如何使用给定的密码验证用户名?

0 投票
1 回答
3269 浏览

c# - LdapConnection 与 DirectoryEntry

谁能解释使用 LdapConnection/SearchRequest 和 DirectoryEntry/DirectorySearcher 在 ActiveDirectory 中搜索用户之间的区别。

哪一个最适合与 AD 交互?

0 投票
2 回答
4783 浏览

c# - 针对 AD 组检查用户登录

我在使用 DirectoryEntry 方法的 C# Web 应用程序中有一个 LDAP 登录设置。下面的代码是我到目前为止所拥有的。这将允许任何拥有 AD 帐户的人登录。我需要将其限制在名为“commonusers”的组中的人。

登录按钮使用以下代码:

是否可以将检查“commonusers”组的用户帐户的功能添加到这些功能之一中?

0 投票
1 回答
6132 浏览

c# - C# 将 LDAP 用户添加到组

我正在编写以下方法将活动目录上的用户添加到 C# 中的自定义组。我有一个名为“SHO Users”的 OU 和一个名为“SHO Sharepoint User”的子 ou 我所有的用户都保存在子 ou 下。我在第一个“SHO 用户”下有一个名为“Test GRP”的组。我需要使用以下代码将一些用户添加到“Test GRP”组,但没有运气。我真的很感激任何帮助。谢谢